微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

程序计数器寄存器中的地址

如何解决程序计数器寄存器中的地址

我们知道程序计数器包含要执行的下一条指令的地址。我试图了解这是哪个地址 - 逻辑 (cpu) 或物理 (RAM)。

解决方法

地址是虚拟的,即它包含 CPU 在那一刻看到的地址。在大多数包含 MMU 的 PC 和架构中都是如此。在微控制器(例如:Arduino CPU、STM32 等)中,程序计数器将始终包含物理地址。

,

在我知道的所有架构中,它都是一个逻辑(虚拟)地址。这确实是唯一有用的方法。您希望页面翻译像数据访问一样应用于指令提取,以便所有分页功能都可以用于代码和数据。对于可以进行与 PC 相关的数据寻址的架构,您也需要虚拟地址——因为所有数据指令都需要进行页面转换,因此您无法对物理地址做任何有用的事情。

(只是承认 dirac3000 的观点 - 如果机器没有 MMU 或者它被禁用,比如实模式下的 x86,那么所有地址都是物理地址,“逻辑”和“物理”之间的区别不存在,所以这个问题变得没有实际意义。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。