【问题标题】:Address of the next 32 bit register下一个 32 位寄存器的地址
【发布时间】:2015-04-21 03:44:58
【问题描述】:

有两个 32 位寄存器。如果由于某种原因第一个寄存器的地址为 0x84000000,那么第二个 32 位寄存器的 HEX 地址将是什么(考虑两个寄存器一个接一个)?

【问题讨论】:

  • 这甚至没有意义。寄存器没有地址(尽管它们被“名称”引用,如“%eax”或可能被视为“地址”的类似名称)。但是,一个寄存器可能包含一个地址,但这绝对不会影响不同的寄存器将包含什么......
  • 您要查找的正确术语是“内存”或“RAM”,而不是寄存器。 CPU 上的寄存器数量很少,可以单独命名。现代 RAM 可能有数十亿字节的内存需要以数字方式寻址。
  • 请从硬件设计师的角度考虑这一点。它也可以称为 32 位内存或 RAM。

标签: 32-bit


【解决方案1】:

我假设您正在使用内存映射 I/O 的嵌入式环境中工作。如果0x84000000是第一个寄存器的地址,那么后面的寄存器很可能是地址0x84000004

飞思卡尔 i.MX35 处理器示例。

寄存器用相对于基地址的偏移量来标识。例如,通用定时器的地址空间映射到基地址0x53F90000。 从数据表中您可以看到寄存器映射:

  • GPT 控制寄存器:0x53F90000 + 0x0000
  • GPT 预分频寄存器:0x53F90000 + 0x0004
  • GPT 状态寄存器:0x53F90000 + 0x0008

等等等等。您可以看到连续的 32 位寄存器以 4 个字节为增量进行映射。

请注意,这可能特定于处理器和架构。我建议您查看您正在使用的硬件的数据表。

【讨论】:

  • 正确!这就是我想确认的……谢谢! :)
猜你喜欢
  • 2011-10-26
  • 1970-01-01
  • 2014-11-18
  • 2015-06-01
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 2011-01-14
  • 2020-11-21
相关资源
最近更新 更多