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