gpt4 book ai didi

architecture - ARM CPSR - 5 位模式?

转载 作者:行者123 更新时间:2023-12-04 05:04:32 25 4
gpt4 key购买 nike

我正在学习 ARM 架构。
1. 我认为 CPSR 分配了 5 位来指定它正在执行的当前模式。因为我们只有大约 6-7 种不同的模式,3 位就足够了。那么为什么我们有 5 个相同的位呢?
2. system/supervisor 模式有什么区别?操作系统在哪种模式下执行它的代码?
3. 另外,我想知道是否可以从用户模式切换到系统/主管模式,无需 swi 调用等手动切换。什么会限制我这样做?
4. 当我切换到监督模式时,我如何使用用户模式寄存器以及该模式已经存在的存储寄存器?

最佳答案

  • 为什么将当前模式压缩成尽可能少的位?也许设计者认为如果模式位更分散,ARM 的设计会更简洁。此外,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 位模式未在我上面链接的文章中列出,我只能假设它们在以后的 ARM 中不受支持。
  • 主管和系统模式不同,请参阅上面链接文章中的列表。至于操作系统使用哪种模式,这取决于操作系统。在系统模式出现之前的过去,会使用主管模式。我不能说系统模式的出现是否改变了这一点。
  • 我相信不使用 SWI 就无法从用户模式切换到主管模式。这是故意的,它是一种安全/稳定性功能,可防止没有适当权限的进程通过访问它们不应该访问的内存位置而导致系统不稳定。
  • 为什么要使用主管模式下的存储用户模式寄存器?您无法从管理员模式获得的唯一用户模式寄存器是 R13 和 R14。
  • 关于architecture - ARM CPSR - 5 位模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15700890/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com