Posted on 2010-04-09 11:09
王小明 阅读(1499)
评论(0) 编辑 收藏 引用
ARM指令的条件后缀
条件后缀的用途:在指令执行前先判断条件是否满足。满足执行本条指令,不满足跳过执行下一条指令
例如:
ADDEQ R4,R3,#0x01
在Z零标志位等于零的时候(Z=0),R4<---R3+1
被测试的条件标志位有 Z,C,N和
V
N负数或小于
C进位或借位或扩张
Z零
V溢出
以上4位在CPSR或SPSR中。
ARM的条件码表
编码 |
后缀助记符 |
标志位 |
定义 |
0000 |
EQ |
Z=1 |
相等 |
0001 |
NE |
Z=0 |
不相等 |
0010 |
CS |
C=1 |
无符号大于或者等于 |
0011 |
CC |
C=0 |
无符号小于 |
0100 |
MI |
N=1 |
负值 |
0101 |
PL |
N=0 |
正值或0 |
0110 |
VS |
V=1 |
溢出 |
0111 |
VC |
V=0 |
无溢出 |
1000 |
HI |
C=1且Z=0 |
无符号大于 |
1001 |
LS |
C=0或Z=1 |
无符号小于或等于 |
1010 |
GE |
N和V相同 |
有符号大于或等于 |
1011 |
LT |
N和V不同 |
有符号小于 |
1100 |
GT |
Z=0且N等于V |
有符号大于 |
1101 |
LE |
Z=1或N不等于V |
有符号小于或等于 |
1110 |
AL |
无条件 |
无条件 |
其中AL应该省略不写。默认AL无条件
当条件后缀和S后缀同时使用时,S后缀在条件后缀之后。
如 ADDEQS