条件执行
int gcd(int a,int b)
{
while(a!=b)
{
if(a > b)
a = a-b;
else
b = b-a;
}
return a;
}
对应到ARM代码段。代码执行前 R0中存放a,R1中存放b;代码执行后R0中存放a和b的最大公约数。
gcd
CMP R0,R1
SUBGT R0,R0,R1
SUBLT R1,R1,R0
BNE gcd
MOV PC,LR
条件判断语句
1 if(a == 0 || b==1)
2 c = d+e;
3
4 对应的ARM代码段。代码执行前R0中存放a,R1中存放b。代码执行后R2中存放d和e> 的总和。
5 CMP R0,#0 ; 判断R0是否等于0
6 CMPNE R1,#1 ; 如果R0不等于0,判断R1是否等于1
7 ADDEQ R2,R3,R4 ; R0 = 0货R1=1时,R2=R3+R4
~