Especiais
RIP, RFLAGS, RSP/RBP, FS/GS e os vetoriais
Registradores especiais
Além dos de uso geral, alguns registradores têm função dedicada — controlam o fluxo de execução, o estado da pilha e o acesso a dados por-thread.
Endereço da próxima instrução a executar. Não é lido/escrito diretamente — muda com jmp, call e ret, e é usado no endereçamento relativo a RIP (lea rsi, [rel msg]).
Bits de status e controle: ZF (zero), CF (carry), SF (sinal), OF (overflow), DF (direção de string) e IF (interrupções). Aritmética e cmp o definem; saltos condicionais (je, jg, …) o leem.
Topo da pilha. push/pop, call/ret e o prólogo/epílogo de funções o movem. Deve estar alinhado em 16 bytes no momento de um call.
Frame pointer: aponta para o quadro de pilha atual, dando um ponto fixo para acessar argumentos e variáveis locais. Otimizações podem omiti-lo (frame-pointer omission).
No x86-64 os segmentos são planos, mas FS e GS ainda fornecem uma base para dados por-thread: o Linux usa FS para o TLS; o Windows usa GS para o TEB/PEB.
Registradores vetoriais de 128/256/512 bits (SSE, AVX, AVX-512). Também transportam argumentos e retornos de ponto flutuante nas convenções de chamada.