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