广州大学嵌入式第二次作业

目录

一、实验任务

1、main.s源文件中94-101行的c语言描述

2、修改main.s源文件

(1)、在第一行显示"广州大学"字样;

(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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值