N、Z、C、V,最高 4 位称为条件码标志。ARM 的大多数指令可以条件执行的,即通过检测这些条件码标志来决定程序指令如何执行。

各个条件码的含义如下:

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 通常不发生变化。