目录
(2)、编写1+2+...+10的程序,求和结果存入sumresult内存单元并用printf显示;
一、实验任务
1、main.s源文件中94-101行的c语言描述
main.s源文件中94-101行:
//(2.1)主循环次数变量mMainLoopCount+1
ldr r2,=mMainLoopCount //r2←mMainLoopCount的地址
ldr r1, [r2]
add r1,#1
str r1,[r2]
//(2.2)未达到主循环次数设定值,继续循环
ldr r2,=MainLoopNUM
cmp r1,r2
blO main_loop //未达到,继续循环
c语言描述:
#include <iostream>
int main()
{
int mMainLoopCount = 0;//主循环次数变量
int MainLoopNUM = 10;//主循环次数设定值
int r1 = 0;
int* r2 = nullptr;
do{
r2 = &mMainLoopCount; //ldr r2,=mMainLoopCount
r1 = *r2; //ldr r1, [r2]
r1++; //add r1,#1
*r2 = r1; //str r1,[r2]
r2 = &MainLoopNUM; //ldr r2,=MainLoopNUM
} while (r1 > *r2); //cmp r1, r2 blO main_loop
}
2、修改main.s源文件
(1)、在第一行显示"广州大学"字样;
(2)、编写1+2+...+10的程序,求和结果存入sumresult内存单元并用printf显示;
sumresult:
.word 0
data_format2:
.ascii "sumresult=%d\n\0" //printf使用的数据格式控制符
mov r1,#1 //记录循环次数,到10时跳出循环
mov r2,#0 //记录求和结果,后面将其存入sumresult
SUM_Loop:
add r2,r1
add r1,#1
cmp r1,#10
ble SUM_Loop
mov r1,r2
ldr r0,=data_format2
bl printf
ldr r1,=sumresult
str r2,[r1]