ARM 汇编指令集 特点之一:条件执行后缀

mov r0,r1;

moveq r0,r1;//这句代码是否执行 取决于 上几句代码 的运行结果(最后一次CPSR 寄存器 的 高四位   NZCV 的标志位)

条件后缀执行特点:
1、条件后缀执行是否成立,不是取决于本句代码,而是取决于这句代码之前的代码运行后的结果!

2、条件后缀只是决定本句代码是否执行,并不影响下一句代码。

CPSR : 高四位 解释

N:在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0。

Z:如果结果为0,则Z=1;如果结果为非零,则Z=0。

C:其设置分一下几种情况:

               对于加法指令(包含比较指令CMN),如果产生进位,则C=1;否则C=0。

               对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1。

               对于有移位操作的非法指令,C为移位操作中最后移出位的值。

               对于其他指令,C通常不变。

V:对于加减法指令,在操作数和结果是有符号的整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0;对于其他指令,V通常不发生变化。

详细的指令表:http://wenku.baidu.com/link?url=esOgjNZWMUGWC2xJfEXygyL9FpjNGc_jdkrleNcYaNcULpuTQBE9hPLRrMJ9YhBSeh2KNGU0brk7DPCD2pW95MMSyMJyZPq4xphwK4LHJDW

CPSR 寄存器 详解:http://blog.csdn.net/laviolette/article/details/51376751

原文地址:https://www.cnblogs.com/suozhang/p/6110396.html