jmp : jump à un label
mov : déplace une valeur dans un registre
cmp : compare 2 éléments
je : jump quand 2 opérand A & B sont égaux
pop : récupère ce qu'il y a dans la stack
inc : incrémente
sub : soustrait
.globl strlen
.intel_syntax noprefix
strlen:
push rbp
mov rbp, rsp
mov rcx, 0
loop:
cmp byte ptr [rdi + rcx], 0
je leave
inc rcx
jmp loop
leave:
mov rax, rcx
pop rbp
ret
rbp / rsp : ancienne et nouvelles adresses de la stack
rdi : registre qui contient le 1er parametre