通用寄存器16个
RAX, RBX, RCX, RDX, RSI, RDI, RSP, RBP,
R8, R9, R10, R11, R12, R13, R14, R15
其中:
- RAX:调用程序时,用于存储返回值。
- RCX:在字符串处理指令中,常用做计数器。
- RSI:在字符串处理指令中,做为源操作数。
- RDI: 在字符串处理指令中,常做为目标操作数。
- RSP:指向当前栈帧的栈顶。
- RBP:指向当前栈帧的栈基址。
RSI, RDI, R8, R9还可以在调用函数时传递参数。
程序计数器
RIP
- RIP 会记录着当前指令的地址,每次取指阶段完成以后就会指向下一条指令的地址,如果有办法修改这个寄存器的值,就可以控制程序的执行。
状态寄存器
EFLAGS
- EFLAGS 中记录着溢出,方向,为零等状态。可以用于整个CPU的状态标记。
段寄存器
CS, DS, ES, FS, GS
- 段寄存器在现代CPU中几乎不起作用了。在8086时代是做为段基址寄存器。