【发布时间】:2015-06-30 21:36:11
【问题描述】:
段寄存器是否保存用作基地址的物理地址,或者因为段只能从段落边界开始,段寄存器只保存该段落边界的序号,然后乘以 10H形成最终的物理基地址,然后添加偏移量。我说的对吗?
【问题讨论】:
标签: assembly intel processor memory-segmentation
段寄存器是否保存用作基地址的物理地址,或者因为段只能从段落边界开始,段寄存器只保存该段落边界的序号,然后乘以 10H形成最终的物理基地址,然后添加偏移量。我说的对吗?
【问题讨论】:
标签: assembly intel processor memory-segmentation
段寄存器的工作方式与您在实际 8086 处理器上描述的一样。内存操作数的物理地址是通过将相关段寄存器中的值乘以 16 并添加到操作数的有效地址来确定的。
现代英特尔处理器分段仅在实模式和虚拟 8086 模式下以这种方式工作。 (严格来说,它的工作原理就像这是计算虚拟/物理地址的方式一样。实际上,在实模式下加载段寄存器会加载带有段基的隐藏选择器缓存条目,并且在计算时使用缓存中的值虚拟/物理地址。选择器缓存的存在是为了在保护模式下加速分段,其中段寄存器用作内存中表的索引。)
【讨论】: