实地址模式(Real-address Mode)下,可以操控的资源有哪些(即其执行环境)?

我们说的实地址模式(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空间。处理器的数据线和地址线除了可用于内存数据的传输和寻址外,还可以用于与其它外部设备进行数据的传输和寻址外部设备。(当然,也可以通过Memory-mapped IO来访问外部设备的数据)。IO空间的寻址范围为[0,FFFFH]。处理器提供了专门的指令来访问IO空间里的数据。
  • 中断的机制(耳熟能详的中断向量表)。
  • 支持8086上所有的指令集。

接下来,是扩展的部分

  • 利用操作数大小修饰符(Operand Size Override Prefix),可访问32位的操作数。在此情况下,可访问32位的寄存器EAX, EBX, ECX, EDX, ESP, EDI, ESI。
  • 可访问增加的两个寄存器FS和GS。
  • 可执行一些8086里没有的指令,这些指令是后面IA-32架构的处理器引入的。
  • 利用地址大小修饰符(Address Prefix),可指定32位的地址偏移(但这个貌似没什么用?因为实地址模式的寻址空间只有1M)。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值