![](https://img-blog.csdnimg.cn/direct/33b4f65f27e145f2b461c1a4b4531969.png)
一、修改main.s源文件,增加以下内容:
string:
.asciz "广州大学\n\0"
data_format:
.ascii "求和结果:%d\n\0" //printf使用的数据格式控制符
data_format1:
.ascii "%08x:%02x\n\0" //printf使用的数据格式控制符,其中8表示输出位数,
//0表示将输出的前面补上0,直到占满指定列宽为止
//(1.7)【不变】开总中断
cpsie i
//显示hello_information定义的字符串
ldr r0,=hello_information //待显示字符串首地址
bl printf //调用printf显示字符串
ldr r0, =string
bl printf
//bl . //在此打桩(.表示当前地址),理解发光二极管为何亮起来了?
//(1)======启动部分(结尾)=======================================
//(2)======主循环部分(开头)=====================================
sum_loop:
add r2, r2, r1 //r2 += r1
add r1,r1, #1 //r1++
cmp r1, #11 //比较r1是否等于11
bne sum_loop //如果不是,继续循环
mov r1, #sumResult
str r2,[r1] //将结果存入sumresult变量
//显示求和结果
ldr r0,=data_format
mov r1,r2 //加载求和结果到r1
bl printf //调用打印整数的函数,参数是r0,r1
//显示sumresult的地址
mov r0, #sumResult //将sumResult的地址加载到r0
bl printf //调用打印地址的函数,参数是r0
//bl . //在此打桩(.表示当前地址)
main_loop: //主循环标签(开头)
//(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 //未达到,继续循环
//(2.3)达到主循环次数设定值,执行下列语句,进行灯的亮暗处理
2、实验结果:
![](https://img-blog.csdnimg.cn/direct/7ec6416e69a2444a8d9753fddff37fa4.png)
![](https://img-blog.csdnimg.cn/direct/da14526f6a924117b8101b80063106ad.png)