38 lines
438 B
ArmAsm
38 lines
438 B
ArmAsm
section .text
|
|
global ft_strcmp
|
|
|
|
; int ft_strcmp(const char *s1, const char *s2)
|
|
ft_strcmp:
|
|
mov rax, 0
|
|
cmp rdi, 0
|
|
je .ret
|
|
cmp rsi, 0
|
|
je .ret
|
|
|
|
mov rax, rdi
|
|
|
|
.loop:
|
|
|
|
mov r10b, BYTE [rdi]
|
|
cmp r10b, BYTE [rsi]
|
|
jne .end
|
|
|
|
cmp BYTE [rdi], 0
|
|
je .end
|
|
cmp BYTE [rsi], 0
|
|
je .end
|
|
|
|
inc rsi
|
|
inc rdi
|
|
jmp .loop
|
|
|
|
.end:
|
|
movzx rax, BYTE [rdi]
|
|
movzx r10, BYTE [rsi]
|
|
sub rax, r10
|
|
|
|
;sub rdi, rax
|
|
;mov rax, rdi
|
|
.ret:
|
|
ret
|