文章目录
if条件判断——cmp/bl/b.gt/b.lt/b.eq/b.ge/b.le(比较指令)
- CMP:(compare)
CMP w0 , w1
的意思是比较的意思:相当于将w0减去w1但是不会改变两个寄存器的值即两个寄存器不会变化,但是其结果会影响cpsr状态寄存器的标记值(nzcv)。
把一个寄存器的内容和另一个寄存器的内容或立即数进行比较。但不存储结果,只是正确的更改标志。
- BL loc_1000068** (标号地址):
跳转到标号处执行 - B.LE loc_1000068** :
小于判断LE是(less than or equal to)的意思当结果为小于等于的时候跳转执行标号地址的pc寄存器的程序。(配合CMP做if判断)。 - B.GE loc_1000068**:
大于等于判断(great than or equal to)原理同B.LE。
注:LE 和 GE 对应的高级代码是反向的即汇编是大于等于那么实际上高级代码是小于,两者互补。
- B.GT loc_1000068** :
比较结果是大于(greater than),执行标号,否则不跳转。