ARM 指令的条件码

来源:互联网 发布:阮一峰面向对象编程 编辑:程序博客网 时间:2024/05/17 02:27

1.程序状态寄存器的条件标志位

N  运算结果的b31位值。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0;

Z  指令结果为0时Z=1,否则Z=0;

C  使用加法运算(包括CMN指令),b31位产生进位时C=1,否则C=0。使用减法运算(包括CMP),b31位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为b31位最后的移出值,其它指令C通常不变;

V  使用加法/减法运算,当发生有符号溢出时V=1,否则V=0,其它指令V通常不变。

2.每一条ARM指令包含4位的条件码

 操作码 条件码助记符 标志 含义 0000 EQ Z=1 相等 0001 NE(Not Equal) Z=0 不相等 0010 CS/HS(Carry Set/High or Same) C=1 无符号数大于或等于 0011 CC/LO(Carry Clear/LOwer) C=0 无符号数小于 0100 MI(MInus) N=1 负数 0101 PL(PLus) N=0 正数或零 0110 VS(oVerflow set) V=1 溢出 0111 VC(oVerflow clear) V=0 没有溢出

 1000

 HI(HIgh) C=1,Z=0

 无符号数大于

 1001 LS(Lower or Same) C=0,Z=1 无符号数小于或等于 1010 GE(Greater or Equal) N=V 有符号数大于或等于 1011 LT(Less Than) N!=V 有符号数小于 1100 GT(Greater Than) Z=0,N=V 有符号数大于 1101 LE(Less or Equal) Z=1,N!=V 有符号数小于或等于 1110 AL 任何 无条件执行(默认) 1111 NV 任何 从不执行
原创粉丝点击