指令的条件域 - ShenYj/ShenYj.github.io GitHub Wiki
-
CPSR 寄存器
-
ARM指令的编码格式
31 28 27 21 20 19 16 15 12 11 0 cond opcode S Rn Rd shifter_operand -
cond
[31-28] 4-bit 指令执行的条件编码 -
opcode
[27-21] 4-bit 指令操作符编码 -
S
[20] 1-bit 决定指令的操作是否影响CPSR的值 -
Rn
[19-16] 4-bit 包含第1个操作数的寄存器编码 -
Rd
[15-12] 4-bit 目标寄存器编码 -
shifter_operand
[11-0] 12-bit 表示第2个操作数
-
-
ARM指令的条件码域
条件码 条件码助记符 含义 CPSR 中条件标志位值 0000 EQ 相等 Z=1 0001 NE 不相等 Z=0 0010 CS/HS 无符号数大于/等于 C=1 0011 CC/LO 无符号数小于 C=0 0100 MI 负数 N=1 0101 PL 非负数 N=0 0110 VS 上溢出 V=1 0111 VC 没有上溢出 V=0 1000 HI 无符号数大于 C=1且Z=0 1001 LS 无符号数小于/等于 C=0且Z=1 1010 GE 带符号数大于/等于 N=1且V=1或N=0且V=0 1011 LT 带符号数小于 N=1且V=0或N=0且V=1 1100 GT 带符号数大于 Z=0且N=V 1101 LE 带符号数小于/等于 Z=1或N!=V 1110 AL 无条件执行 1111 NV 该指令从不执行