section .text global ft_strlen ft_strlen: test rdi, rdi jz .err mov rsi, rdi jmp .loop_start .increase_pointer: lea rsi, [rsi + 1] .loop_start: mov al, [rsi] test al, al jnz .increase_pointer .end: sub rsi, rdi mov rax, rsi ret .err: xor rax, rax ret