微处理器的程序设计模型
程序可见(program visible)寄存器 8086及以上
编程人员进行程序设计时,能够使用的寄存器。
程序不可见寄存器(program invisible)80286及以上
在应用程序设计中不能直接访问,但在系统程序设计中可以间接引用或通过特权指令访问
分别是通用寄存器,专用寄存器(标志寄存器,指令指针寄存器,段寄存器)
通用寄存器
Pentium 4和Core2工作在扩展64位模式使用
通用数据寄存器
可按64位、32位、16位或8位寄存器寻址
EAX(accumulator) 累加器 EBX(base index)基址寄存器
ECX(counter)计数器 EDX(data )数据寄存器
EBP(base pointer)基址指针 ESP(stack pointer)堆栈指针
ESI(source index)源变址寄存器 EDI(destination index)目标变址寄存器
专用寄存器
64位 32位 16位
RIP/EIP (Instruction pointer) 指令指针寄存器
与代码段寄存器配合,寻址CPU要取出的下一条指令字节.
实模式 — IP (16位)
保护模式 — EIP (32位) 80386 及以上
64位模式 — RIP (64位)
RFLAGS/EFLAGS 标志寄存器
指示微处理器的状态并控制它的操作
FLAGS(16-bits) 8086 — 80286
EFLAGS (32-bits) 80386 及以上
RFLAGS (64-bits)
实地址模式下,定义了9个标志位,
6个状态标志位,3个控制标志位
状态标志位反映了微处理器的工作状态,算术运算和逻辑运算指令的执行会改变这些标志位的状态;
控制标志位对微处理器的某些特定操作起到控制作用。
状态标志
进位标志CF(carry flag)
反映加法运算的进位情况或减法运算的借位情况。
当加法运算的最高位有进位或减法运算的最高位有借位,CF置1;反之,CF清0
辅助进位标志AF(auxiliary carry flag)
“半进位”标志
反映加减法运算中,第