发布网友 发布时间:2022-04-23 13:09
共2个回答
热心网友 时间:2023-09-14 00:26
EQ (Equal Z set)
NE (Not equal Z clear)
CS/HS (Carry set/unsigned higher or same C set)
CC/LO (Carry clear/unsigned lower C clear)
MI (Minus/negative N set)
PL (Plus/positive or zero N clear)
VS (Overflow V set)
VC (No overflow V clear)
HI (Unsigned higher C set and Z clear)
LS (Unsigned lower or same C clear or Z set)
GE (Signed greater than or equal N set and V set, or N clear and V clear (N == V))
LT (Signed less than N set and V clear, orN clear and V set (N != V))
GT (Signed greater than Z clear, and either N set and V set, or N clear and V clear (Z == 0,N == V))
LE (Signed less than or equal Z set, or N set and V clear, or
N clear and V set (Z == 1 or N != V))
AL (Always (unconditional) )
括号外面的是条件,括号里的是解释说明。默认条件是AL(always).
热心网友 时间:2023-09-14 00:26
当处理器工作在arm状态时,几乎所有的指令均根据cpsr中条件码的状态和指令的条件域有
条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。
每一条arm指令包含4位的条件码,位于指令的最高4位[31:28]。条件码共有16种,每种条件码
可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。例如,跳转指令b
可以加上后缀eq变为beq表示“相等则跳转”,即当cpsr中的z标志置位时发生跳转。
在16种条件标志码中,只有15种可以使用,如表所示,第16种(1111)为系统保留,暂时不
能使用。
指令的条件码
条件码
助记符后缀
标
志
含
义
0000
eq
z置位
相等
0001
ne
z清零
不相等
0010
cs
c置位
无符号数大于或等于
0011
cc
c清零
无符号数小于
0100
mi
n置位
负数
0101
pl
n清零
正数或零
0110
vs
v置位
溢出
0111
vc
v清零
未溢出
1000
hi
c置位z清零
无符号数大于
1001
ls
c清零z置位
无符号数小于或等于
1010
ge
n等于v
带符号数大于或等于
1011
lt
n不等于v
带符号数小于
1100
gt
z清零且(n等于v)
带符号数大于
1101
le
z置位或(n不等于v)
带符号数小于或等于
1110
al
忽略
无条件执行