【问题标题】:How is a physical address generated in 8086?8086中的物理地址是如何产生的?
【发布时间】:2011-05-11 09:00:05
【问题描述】:

8086 架构中,内存空间大小为 1 MiB,并被划分为每个最多 64 KiB 的逻辑段。

即它有 20 个地址行,因此使用以下方法:

即数据段寄存器左移4位,然后加到偏移寄存器中

我的问题是:虽然所有寄存器都只有 16 位,但我们如何进行移位操作

【问题讨论】:

  • 不是一个真正的编程问题——这只是 CPU 架构(大约 1980 年代中期)——“移位”由 CPU 硬件处理——你不必担心。
  • 嗯,这是一道编程题,但前提是错误的。
  • @Paul:你说得对,但我研究了 CPU 硬件,没有看到任何 20 位寄存器
  • 你不需要 20 位寄存器 - 内存接口逻辑处理 20 位物理地址的生成
  • 我可以断定这是内存接口问题

标签: x86-16 memory-address microprocessors


【解决方案1】:

地址转换是由一个特殊单元在内部完成的,而不使用用户代码可用的寄存器来存储中间结果 - 它只是获取 16 位值并在内部进行转换 - 它不会反映在用户代码可以观察到的任何地方.

【讨论】:

  • 好的,但我需要一个参考来验证答案
  • @Mina Fouad:我知道没有明确的引用,但可以推断出来。代码可用的寄存器在转换过程中不会改变,因此很明显它们不用作轮班的中间存储。
  • @Mina 如果您确实找到了参考,请发布以确保完整性
  • @belisarius:我没找到,但是当我问对象的 DR 相同的问题时,她的回答和尖牙一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
  • 2019-03-23
相关资源
最近更新 更多