我们说的实地址模式(Real-address Mode),其实是IA-32架构或Intel 64架构提供的一种工作模式,该模式基本上提供了和8086上一样的执行环境,除此之外,还带有一些扩展,基本能运行原本在8086,8088,80186,80188上运行的程序。
首先,是和8086上一样的执行环境部分
- 可寻址的内存空间,范围[0, 1M]。因最初支持实地址模式的8086处理器只有20条地址线,所以其寻址范围最大只能去到2^20。
- 用于各种用途的寄存器:
- 通用寄存器。这些寄存器负责临时存放运算结果,或临时存放运算需要的操作数,或临时存放操作数在内存中的地址,或辅助构筑栈(Stack)。它们是:AX, BX, CX, DX, SI, DI, BP, SP。
- 段寄存器。这些段寄存器负责存放段的基地址(准确点,实模式下的地址计算是通过将段寄存器里的数值左移4位得到的)。根据指令的需要,有这些段:代码段、数据段、栈段。这些段寄存器包括:CS, DS, ES, SS。
- FLAGS标记寄存器。该寄存器存放各种标记控制信息。
- IP寄存器。该寄存器存放下一条要执行的指令在代码段里的偏移,它联合CS决定了下一条要执行的指令在内存里的地址(即CS<<4+IP)。
- 专注浮点运算的寄存器。最初支持实地址模式的8086处理器,需要一个叫8087 math协处理器来执行浮点运算。
- 可寻址的IO空间。处理器的数据线和地址线除了可用于内存数据的传输和寻址外,还可以用于与其它外部设备进行数据的传输和寻址外部设备。(当然,也可以通过Me