IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]ARM 指令的条件码

    lincyang发表于 2013-10-30 10:52:50
    love 0

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


沪ICP备19023445号-2号
友情链接