X86寄存器
- 8086 CPU中寄存器总共为14个:且均为16位(32位和64位均以16位为基础)
- 14个寄存器:AX BX CX DX SP BP SI DI IP FLAG CS DS SS ES
- 根据类型分
- 通用寄存器
- 数据寄存器:AX,BX,CX,DX
- AX:累加寄存器,也称为累加器
- BX:基地址寄存器
- CX:计数器寄存器
- DX:数据寄存器
- 指针寄存器:SP和BP
- SP:堆栈指针寄存器
- BP:基指针寄存器
- 变址寄存器:SI和DI
- SI:源变址寄存器
- DI:目的变址寄存器
- 数据寄存器:AX,BX,CX,DX
- 控制寄存器
- IP:指令指针寄存器
- FLAG:标志寄存器
- 段寄存器
- CS:代码段寄存器
- DS:数据段寄存器
- SS:堆栈段寄存器
- ES:附加段寄存器
- 通用寄存器
x86-64 的调用约定
x86-64 有16个64位寄存器,分别是:
rax,rbx,rcx,rdx,esi,edi,rbp,rsp,r8,r9,r10,r11,r12,r13,r14,r15
寄存器 | 描述 |
---|---|
rax | 作为函数返回值使用 |
rsp | 栈指针寄存器,指向栈顶 |
rdi,rsi,rdx,rcx,r8,r9 | 依次用作函数参数;如果断点在 OC 方法的第一行,那 rdi 就是 self,rsi 就是 cmd |
rbx,rbp,r10,r11,r12,r13,r14,r15 | 通用寄存器 |