1 ;; library functions for rdtmain - test of rdx linking and execution 2 3 ;; library function = _strcmp, defined as in C 4 5[SECTION .text] 6[BITS 32] 7 8[GLOBAL _strcmp] 9_strcmp: 10 push ebp 11 mov ebp,esp 12 13 ;; ebp+8 = first paramater, ebp+12 = second 14 15 mov esi,[ebp+8] 16 mov edi,[ebp+12] 17 18.loop: 19 mov cl,byte [esi] 20 mov dl,byte [edi] 21 cmp cl,dl 22 jb .below 23 ja .above 24 or cl,cl 25 jz .match 26 inc esi 27 inc edi 28 jmp .loop 29 30.below: 31 mov eax,-1 32 pop ebp 33 ret 34 35.above: 36 mov eax,1 37 pop ebp 38 ret 39 40.match: 41 xor eax,eax 42 pop ebp 43 ret 44 45[SECTION .data] 46[GLOBAL _message] 47 48_message: db 'hello',0