ARM及Thumb指令条件执行

来源:互联网 发布:久米田康治 知乎 编辑:程序博客网 时间:2024/05/16 18:00

条件执行与标志位

ARM指令可以通过增加条件码前缀来达到条件执行的目的。同时可以提高代码密度,减少分支跳转指令数目,提高性能。

CMP R1,#0

BEQ LOOP

 

 LOOP

ADD R0,R2,R3

一般情况下数据操作指令不会改变条件码标志位,但可以通过增加S后缀改变它,CMP指令例外。

对于Thumb指令集,只有B指令具有条件码执行功能。

条件执行示例
一系列的指令都使用条件指令
if (a==0) func(1);
CMP r0,#0

MOVEQ r0,#1

BLEQ func
置标志位,再使用不同的条件码
if (a==0) x=0;

if (a>0) x=1;

CMP r0,#0

MOVEQ r1,#0

MOVGT r1,#1
.使用条件比较指令
if (a==4 || a==10) x=0;


CMP r0,#4

CMPNE r0,#10

 MOVEQ r1,#0

原创粉丝点击