楽
Size: a a a
楽
A
A
A
E
d
.file "memop.c"
.intel_syntax noprefix
.text
.align 16
.globl strcmp
.type strcmp, @function
strcmp:
push ebp
mov ebp, esp
push ebx
mov edx, DWORD PTR [ebp+8]
mov ecx, DWORD PTR [ebp+12]
movzx eax, BYTE PTR [edx]
test al, al
jne .L2
jmp .L9
.align 16
.L4:
movzx eax, BYTE PTR [edx+1]
add edx, 1
lea ebx, [ecx+1]
test al, al
je .L10
mov ecx, ebx
.L2:
movzx ebx, BYTE PTR [ecx]
cmp bl, al
je .L4
.L3:
sub eax, ebx
mov ebx, DWORD PTR [ebp-4]
leave
ret
.align 16
.L10:
movzx ebx, BYTE PTR [ecx+1]
xor eax, eax
sub eax, ebx
mov ebx, DWORD PTR [ebp-4]
leave
ret
.L9:
movzx ebx, BYTE PTR [ecx]
xor eax, eax
jmp .L3
.size strcmp, .-strcmp
.ident "GCC: (GNU) 11.2.0"
d
xor eax, eax
, он в этом месте всегда нулевой на входеd
E
d
xor eax, eax
в них не нуженd
.globl strcmp
strcmp:
# push ebp
# mov ebp, esp
push ebx
mov edx, DWORD PTR [esp+8]
mov ecx, DWORD PTR [esp+12]
movzx eax, BYTE PTR [edx]
movzx ebx, BYTE PTR [ecx]
test al, al
jne .L2
jmp .L3
.align 16
.L4:
movzx eax, BYTE PTR [edx+1]
add edx, 1
lea ecx, [ecx+1]
test al, al
movzx ebx, BYTE PTR [ecx]
je .L3
.L2:
cmp bl, al
je .L4
.L3:
sub eax, ebx
# mov ebx, DWORD PTR [ebp-4]
# leave
pop ebx
ret
d