ARM条件执行指令
ROUTINE
2.
(1)
If((R0= =R1)&&(R2= =R3))
R4++;
(2)
int gcd(int a, int b)
{
while(a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
}
return a;
}
int gcd(int a, int b)
{
while(a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
}
return a;
}
(3)利用条件执行的思想计算n! (exp7.4.s)
AREA factorial,CODE,READONLY
ENTRY
START
MOV R2,#0xA
MOV R1,R2
LOOP
;递减R2并更新状态标志
;乘,注意结果寄存器应该与源寄存器不同
;保存乘积,准备下一次计算
BNE
LOOP
STOP
B
STOP
END
1.
CMP R0,#10
ADDNER1,R1,R0
SUBNER1,R1,R2
2.
CMP R0,R1
CMPEQ R2,R3
ADDEQ R4,R4,#1
3.
答案一
GDC
CMP R0,R1
BEQ END
BLT LESS
SUB R0,R0,R1
B GDC
LESS
SUB R1,R1,R0
B GDC
START
LOOP
STOP
1.
ADDNE
SUBNE
|
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/319158_1_0.jpg)
2.
CMPEQ R2,R3
ADDEQ R4,R4,#1
3.
答案一
GDC
LESS