第二章作业:写出汇编语句的C语言描述,修改main.s源文件

文章讲述了如何将main.s中的94-101行C语言描述转换成汇编代码,并添加广州大学标识及编写一个1到10的求和程序,最后通过printf显示结果。
摘要由CSDN通过智能技术生成

作业一:写出main.s中94-101行语句的c语言描述

  main.s中94-101行语句如下:

对应的c语言如下:

int *r2 = &mMainLoopCount;  //加载mMainLoopCount的地址到r2
*r1 = *mMainLoopCount;   //把指向r2的地址加载到r1
r1 += 1;  //将r1的值加1
*mMainLoopCount = r1;  //将r1的值存回到r2指向的地址
while(r1<mMainLoopNUM)  //比较r1和mMainLoopNUM的值,r1比较小时进入循环
{
  main_loop();
  r1++;
  mMainLoopCount = r1;
}

作业二:修改main.s源文件,增加以下内容:

1.在第一行显示“广州大学”字样

2.编写一个1+2+...+10的程序,将求和结果存入名为"sumresult"的内存单元中,并将求和结果用printf显示出来:

所用汇编语言如下:

ldr r1,=sumresult   //将求和结果加载到r1
ldr r2,[r1]        //将r1的值加载到r2
mov r3,#1          //将1加载到r3
loop:      //开始循环
cmp r3,#10   //比较r3的值是否大于10
bgt endloop   //当r3的值大于10时跳至endloop函数
add r2,r3    //将r3的值加到r2上
add r3,#1   //r3自增1
b loop   //跳回循环开始处

endloop:   
str r2,[r1]   //将累加后的结果的值从r2存到r1中
ldr r0,=data_sum   //将sum的地址加载到r0
ldr r2,=sumresult     //将累加后的结果地址加载到r2
ldr r1,[r2]   //将累加后的结的值果存到r1中
bl printf    //调用printf函数打印结果
b .   //程序结束

求和结果存放在sumresult中:

结果展示:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值