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 | 任何 | 从不执行 |
上一篇:ARM linux解析之压缩内核zImage的启动过程
下一篇:头文件定义和ARM指令
推荐阅读最新更新时间:2024-03-16 14:59