ARM中: MOVS R2,R0 将R0的值复制给R2,并影响条件码标志 请问这个数据传送指令,如何影响CPSR呢?谢谢

如果RO为0,那么赋值结果是R2变成0,则CPSR的Z=1。如果R0为负数,那么指令执行后R2也为负,此时CPSR的N位为1。

可以分成两种情况来考虑 movs 指令对标志位的影响:
a,假如目标寄存器非r15,也即非PC。那么看所移动的值是否为零或者是否为负来影响 cpsr 中的z标志和n标志;假如 movs 指令中还有移位操作,那么移出位还为被设置到 c标志中。
b,假如目标寄存器是 r15,那不管是 mov 还是 movs ,都会用 spsr 中的值来更新cpsr,其中的标志位自然会受到影响。
这两种情况下,都不会影响到 cpsr 中的 v标志。
现在的情况,只是需要根据R2的结果去看CPSR的影响即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-12
不会的。只是r2的值变了而已,不影响CPSR本回答被提问者采纳
相似回答