.intel_syntax
.data
.align 4 VAR: .long 0 BOL: .byte 0 .text
.globl __xatoi
__xatoi:
push ebp mov ebp, esp xor eax, eax mov VAR, eax mov BOL, eax /* false */ mov ecx, 0xa /* 10*/ mov edi, [ebp+8] cmp byte ptr[edi], 0x2d /* '-' */ jne __it inc edi
mov byte ptr BOL, 0x1 /* true */ call __cmp __it: call __cmp movzx ebx, byte ptr[edi] sub bl, 0x30 /* '0' */ mov eax, VAR mul ecx add eax, ebx mov VAR , eax inc edi cmp byte ptr[edi], 0x00 jne __it jmp __atexit __cmp: cmp byte ptr[edi], 0x39 ja __atexit cmp byte ptr[edi], 0x30 jb __atexit ret
__atexit: cmp byte ptr BOL, 0x1 je __neg jmp __exit __neg: mov eax, VAR neg eax mov VAR , eax __exit: mov eax, VAR leave ret
|