aboutsummaryrefslogtreecommitdiff
path: root/ft_strlen.s
diff options
context:
space:
mode:
Diffstat (limited to 'ft_strlen.s')
-rw-r--r--ft_strlen.s24
1 files changed, 12 insertions, 12 deletions
diff --git a/ft_strlen.s b/ft_strlen.s
index 32eaf0c..82c0e34 100644
--- a/ft_strlen.s
+++ b/ft_strlen.s
@@ -1,12 +1,12 @@
-ft_strlen:
- pop bx
- mov eax, 0h
-FT_STRLEN_LOOP:
- mov ecx, [ebx]
- cmp ecx, 0
- je FT_STRLEN_RET
- inc eax
- inc ebx
- jmp FT_STRLEN_LOOP
-FT_STRLEN_RET:
- ret
+.globl _ft_strlen
+
+ _ft_strlen:
+ mov rbx, rdi # first argument in rbx
+ xor rax, rax # rax = 0
+ FT_STRLEN_LOOP:
+ cmp byte ptr [rbx + rax], 0 # compare rbx[rax] and '\0'
+ je FT_STRLEN_RET
+ inc rax
+ jmp FT_STRLEN_LOOP
+ FT_STRLEN_RET:
+ ret