首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ARM CPSR -5位模式?

ARM CPSR -5位模式?
EN

Stack Overflow用户
提问于 2013-03-29 17:50:52
回答 1查看 3.5K关注 0票数 2

我正在学习arm架构。

  1. 我认为CPSR分配了5位来指定它当前的执行模式。其中我们只有大约6-7种不同的模式,对于这些模式,3比特就足够了。为什么我们有5位相同的?
  2. 系统/管理模式之间的区别是什么?操作系统在哪种模式下执行它的代码?
  3. 我还想知道是否可以在不调用swi的情况下手动从用户模式切换到系统/管理程序模式。是什么限制了我这样做?
  4. 和当我切换到管理程序模式时,我如何使用用户模式寄存器以及该模式下已经存在的银行寄存器?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-29 20:38:18

  1. 为什么要将当前模式压缩为尽可能少的位?也许设计者认为,如果模式位更分散,手臂的设计会更清晰。此外,CPSR中并不是缺少备用位。

但是,您可能会注意到all 8 modes listed here have bit 4 set to 1。这是因为ARM6 (和ARM7?)处理器支持四种额外的“26位”模式,与ARM2/ARM3代码兼容。这四种26位模式的位4设为0,是模拟ARM2/ARM3行为的用户模式、IRQ模式、FIQ模式和管理模式的版本。在ARM2/ARM3中,既没有CPSR也没有SPSR,N、Z、C、V、I和F标志位于PC的前六位,处理器模式位于PC的后两位。由于26位模式没有在我上面链接的文章中列出,我只能假设它们在后来的ARMs.

  • Supervisor中不受支持,并且系统模式是不同的,请参阅上面链接文章中的列表。至于操作系统使用哪种模式,这取决于操作系统。在系统模式出现之前的旧时代,会使用supervisor模式。我不能说系统模式的出现是否改变了这一点。

  • 我相信,如果不使用SWI,就无法从用户模式切换到管理员模式。这是故意的,它是一种安全/稳定功能,可以防止没有适当权限的进程通过访问不应该访问的内存位置而导致系统不稳定。

  • 为什么要在管理程序模式下使用银行用户模式寄存器?您无法从管理程序模式获取的唯一用户模式寄存器是R13和R14。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15700890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档