现在的位置: 首页 > 综合 > 正文

ARM 指令的条件码

2013年01月07日 ⁄ 综合 ⁄ 共 752字 ⁄ 字号 评论关闭

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  任何  从不执行

抱歉!评论已关闭.