汇编条件判断 eq neq
cpsr[30]是zero位,主要保存最近的一次“是否相等”的条件判断的结果
zero位状态由以下指令来设置
cmp r0 , r1
cmp r0 , #100
除cmp之外,运算操作都可以通过加上s后缀来设置修改zero位结果
几乎所有的指令(除了cmp和加了s后缀的指令:说白了就是修改zero位的指令后不能再加eq和neq)都可以加上eq或neq的后缀来读取zero位状态,并根据zero位状态来决定是否执行该指令
eq == equal 相等,即zero位保存的条件判断结果是相等时,本指令执行,否则不执行
ne == notequal 不相等,即zero位保存的条件判断结果不相等时,本指令执行,否则不执行
例如用条件判断构成循环
mov r0 , #6
loop:
…
subs r0 , #1
bne loop