图2-10标识为不修改(DNM)的位,读为Zero (RAZ),不能被软件修改。这些双边投资条约是: ·可读性,以便保持处理器状态,例如,在进程上下文切换期间 ·可写的,以恢复处理器状态。为了保持与未来ARM处理器的兼容性,以及作为良好实践的,强烈建议您在更改CPSR时使用读修改写策略。
但是,通过按位操作,您可以清楚地定义要更改哪些位,而无需修改任何意外的值,这样就避免了浪费额外的周期。提出这个建议的原因是什么?
发布于 2013-04-16 22:23:27
手册警告您不要向DNM位写入零(或其他任何东西),前提是它们不会被修改--这在当前处理器实现中可能是这样,但即使现在是这样,在将来的实现中也可能不是这样。
类似地,他们似乎保留了在未来改变拉兹比特的权利,这样他们可能不会总是为零,或者给他们写一封信可能会导致一些状态的变化,即使重读比特仍然是零。
此外,请记住,大多数按位操作“清楚地定义要更改的位”通常会导致读/写/修改序列。例如,val |= 0x08;
执行读/修改/写操作。
https://stackoverflow.com/questions/16047719
复制相似问题