指令指针寄存器 Instruction Pointer Register
IP(Instruction Pointer):指令指针寄存器
注
EIP寄存器存储着cpu要读取的指令的地址,没它cpu就无法读取下一条指令(cpu就无法执行)
每次相应指令执行完相应的EIP值就会增加 EIP is incremented after each instruction
EIP的值可以通过CALL,RET等指令修改 EIP modified by CALL, RET, JMP, and conditional JMP
通用寄存器 General purpose register
AH&AL=AX(accumulator):累加寄存器
BH&BL=BX(base):基地址寄存器
CH&CL=CX(count):计数寄存器
DH&DL=DX(data):数据寄存器
SI(Source Index):源变址寄存器
DI(Destination Index):目的变址寄存器
SP(Stack Pointer):堆栈顶指针寄存器
BP(Base Pointer):堆栈基指针寄存器
注1:
================ RAX 64位寄存器
======== EAX 32位寄存器 EAX中的"E"表示的意思是Extended,"扩展"的意思
==== AX 16位寄存器 AX是EAX的低16位 "X"表示的意思是mix、"混合"的意思。对AX指的是AH和AL两个混合的总称
== AH 8位寄存器 AH是AX的高八位
== AL 8位寄存器 AL是AX的低八位
注2:
Accumulator 蓄电池; 累加器;
例:In this design accumulator is used to accumulate and release energy.
译:在本设计中,蓄能器主要起储存与释放能量的作用
注3:
x86中只有8个32位通用寄存器,eax,ebx,ecx,edx, ebp, esp, esi, edi。x86_64把这8个通用寄存器扩展成了64位的
注4:
便捷记忆 ABCD SBSD
段寄存器 Segment Register
CS(Code Segment):代码段寄存器,其值为代码段的段值
DS(Data Segment):数据段寄存器,其值为数据段的段值
SS(Stack Segment):堆栈段寄存器,其值为堆栈段的段值
ES(Extra Segment):附加段寄存器,其值为附加数据段的段值
FS(Flag Segment):是标志段寄存器(附加段寄存器)
GS(Global Segment):是全局段寄存器(附加段寄存器)
标志寄存器 Flags Register
OF(overflow flag):溢出标志 操作数超出机器能表示的范围表示溢出,溢出时为1.
SF(sign flag):符号标志 记录运算结果的符号,结果负时为1.
ZF(zero flag):零标志 运算结果等于0时为1,否则为0.
CF(carry flag):进位标志 最高有效位产生进位时为1,否则为0.
AF(auxiliary carry flag):辅助进位标志 运算时,第3位向第4位产生进位时为1,否则为0.
PF(parity flag):奇偶标志 运算结果操作数位为1的个数为偶数个时为1,否则为0.
DF(direcion flag):方向标志 用于串处理.DF=1时,每次操作后使SI和DI减小.DF=0时则增大.
IF(interrupt flag):中断标志 IF=1时,允许CPU响应可屏蔽中断,否则关闭中断.
TF(trap flag):陷阱标志 用于调试单步操作.