改变CPSR保留位

时间:2016-01-12 05:27:40

标签: assembly arm cpu-registers

尽管我在所有ARM参考中都知道下面的注释,但我想知道是否有任何方法可以改变CPSR中的保留位?如何更改保留位以生成我想要的值?

提前谢谢你,

注 为了与未来的ARM处理器兼容,请不要更改程序状态寄存器的保留位。更改CPSR时使用读取 - 修改 - 写入操作。

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0311d/ch02s04s02.html

1 个答案:

答案 0 :(得分:2)

您引用的文档中的关键字是:

  

与未来的ARM处理器兼容

这意味着您无法知道这些位在特定CPU中的含义。您可能有一个在写入此文本后生成的CPU,其中一个保留位具有特殊含义。

如果这个特殊含义是“执行CPU复位”,那么在尝试改变这些位时会使CPU崩溃!

对于目前市场上的CPU,我认为“dwelch”是正确的:这些位只是硬连接到某个值,不能改变。