我正在处理armv7中的异常返回和模式切换。我遇到了RFE和SRS指令。我通读了他们,偶然发现了这一行 "在所有情况下,基址寄存器都是早期寄存器,需要额外的结果延迟周期才能提供其值。"我发现这一点很奇怪,因为我认为任何寄存器就是这种情况。
这是我第一次遇到这样的事情而且我查看了体系结构参考手册,我找不到关于"提前注册"的任何描述。我想知道它们是什么以及它们是如何分类的?
答案 0 :(得分:2)
考虑这个示例代码:
LDR R3, [R0,#0x04]
CMP R3, R2
现在在这种情况下,加载指令需要一些时钟周期来处理,并且该值不能立即用于比较指令。在这种情况下,核心将停止,直到+ k周期已经过去,因为我们在实际写入结果之前使用R3 早期。