Voltar à lista
Assembly x86-64Registradores

Uso geral

Os 16 registradores de 64 bits e seus papéis

Registradores de uso geral

Os 16 registradores de 64 bits e o papel que cada convenção costuma dar a eles. Os nomes herdados do x86 antigo (A de acumulador, C de contador…) hoje são só tradição — quem fixa o papel é a convenção de chamada, não o hardware.

64 bitsPapel típico
raxAcumulador. Valor de retorno de funções e número da syscall no Linux.
rbxBase. De uso livre; preservado entre chamadas nas duas convenções.
rcxContador (loops, shifts). 1º argumento no Windows, 4º argumento no System V.
rdxDados. Argumento e metade alta de retornos/produtos de 128 bits.
rsiSource index (operações de string). 2º argumento no System V.
rdiDestination index (operações de string). 1º argumento no System V.
rbpBase pointer: ancora o quadro de pilha da função atual.
rspStack pointer: aponta para o topo da pilha. Nunca use para dados comuns.
r85º argumento no System V, 3º no Windows.
r96º argumento no System V, 4º no Windows.
r10Scratch. Recebe o 4º argumento na instrução syscall do Linux.
r11Scratch. A instrução syscall o destrói (salva o RFLAGS ali).
r12De uso livre; preservado entre chamadas nas duas convenções.
r13De uso livre; preservado entre chamadas nas duas convenções.
r14De uso livre; preservado entre chamadas nas duas convenções.
r15De uso livre; preservado entre chamadas nas duas convenções.