【发布时间】:2019-02-11 15:44:13
【问题描述】:
以下摘录来自ARM system developer's guide
除了用户模式之外的每个处理器模式都可以通过写来改变模式 直接连接到 cpsr 的模式位。所有处理器模式,除了 系统模式有一组关联的存储寄存器,它们是 主要 16 个寄存器的子集。
我的问题是:
- 用户模式和系统模式是否相同?还是其他模式?
- 系统模式能否通过直接写入 cpsr 的模式位来更改模式?
- 用户模式是否有一组关联的存储寄存器,它们是主要 16 个寄存器的子集?
【问题讨论】:
-
图片回答了你的第三个问题,系统和用户共享同一个寄存器。如果您阅读架构参考手册,您将了解用户可以做什么和不能做什么(以及系统)。用户模式和系统模式不一样,否则他们不会将它们列为两件事。除了访问通用寄存器之外,他们还有不同的权限。
-
阅读架构参考手册,我建议您从 infocenter.arm.com 上较早的 armv5 架构参考手册开始,这些其他文档很有趣,但即使是 arm 中的其他文档也具有误导性和混淆性。
-
@old_timer 我认为除了系统模式之外,用户模式没有一组关联的存储寄存器,它们是主要 16 个寄存器的子集。
-
如图所示,系统和用户使用同一组寄存器。