Added commentary
This commit is contained in:
34
ft_strcmp.s
34
ft_strcmp.s
@@ -1,27 +1,27 @@
|
||||
global ft_strcmp
|
||||
|
||||
ft_strcmp:
|
||||
xor r8, r8
|
||||
xor rax, rax
|
||||
xor r8, r8 ; r8 = 0
|
||||
xor rax, rax ; rax = 0
|
||||
|
||||
.count:
|
||||
mov al, BYTE [rdi + r8]
|
||||
mov dl, BYTE [rsi + r8]
|
||||
test al, al
|
||||
jz .end
|
||||
test dl, dl
|
||||
jz .end
|
||||
cmp al, dl
|
||||
jne .end
|
||||
inc r8
|
||||
jmp .count
|
||||
mov al, BYTE [rdi + r8] ; al = s1[r8]
|
||||
mov dl, BYTE [rsi + r8]; dl = s2[r8]
|
||||
test al, al ; if (al == 0)
|
||||
jz .end ; goto end
|
||||
test dl, dl ; if (dl == 0)
|
||||
jz .end ; goto end
|
||||
cmp al, dl ; compare al and dl
|
||||
jne .end ; if not equal, goto end
|
||||
inc r8 ; r8++
|
||||
jmp .count ; repeat
|
||||
|
||||
.end:
|
||||
sub al, dl
|
||||
sub al, dl ; take diff between al and dl
|
||||
js .neg
|
||||
ret
|
||||
ret ; return it
|
||||
|
||||
.neg:
|
||||
neg al
|
||||
neg rax
|
||||
ret
|
||||
neg al ; al = -al;
|
||||
neg rax ; al is the first 8 bit of rax, so reverse it
|
||||
ret ; return it
|
||||
Reference in New Issue
Block a user