所以我试图在特殊的上下文中为 Arm 指令编写一个模拟器,我想了解 Arm 处理器中程序计数器的完整行为。规格有以下声明
程序计数器 (PC) 作为 PC(或 R15)访问。它以所执行指令的大小递增(在 ARM 状态下始终为 4 个字节)。分支指令将目标地址加载到 PC 中。您也可以使用数据处理指令直接加载 PC。例如,要跳转到通用寄存器中的地址,使用: MOV PC, R0 在执行期间,PC 不包含当前执行指令的地址。当前执行指令的地址通常是 ARM 的 PC-8 或 Thumb 的 PC-4。
由此,我了解到当执行 ADDS PC 时,#-4 PC 将处于 +4 或 +8,所以如果它处于 +4,程序会进入无限循环吗?