Files
libasm/src/str/ft_strcmp.s

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