- 19
- 0
- 约1.42千字
- 约 7页
- 2017-08-09 发布于重庆
- 举报
实验三 基于ARM的汇编编程实验Memory)监视0的值。
实验内容二:
1.使用STMFD/LDMFD,MUL指令编写一个整数乘方的子程序,然后使用BL指令调用子程序计算X n的值。
2.X n= X*X*X …… *X,其中相乘的X的个数为n个。先将X的值装入R0和R1,使用寄存器R2进行计数,循环n-1次R0=R0*R1,运算结果就保存在R0中。(不考虑溢出问题)
3.注意:若n=0,则运算结果直接赋1;若n=1,则运算结果直接赋X。
四,实验步骤
实验内容一的步骤:
1.启动ADS1.2,使用ARM Executable Image工程模板建立一个工程arm1.mcp。如图5.1所示。
图5.1 新建工程对话框
2.建立汇编源文件arm1.s,编写实验程序,然后添加到工程中。如图5.2所示。
图5.2 新建汇编文件对话框
3.设置工程连接地址RO Base为0RW Base为0设置调试口地址Image entry point为0
图5.3 DebugRel Settings对话框
4.编译连接工程,选择Project|Debug,启动AXD进行软件仿真调试。
5.打开寄存器窗口(Processor Registers),选择Current项监视R0,R1的值。打开存储器观察窗口(Memory),设置观察地址为0显示方式Size为32Bit,监视0址上的值。
6.单步运行程序,这时观察寄存器和0址上的值。运行结果如图5.4~5.8所示。
图5.4 运行结果
图5.5 运行结果
图5.6 运行结果
图5.7 运行结果
图5.8 运行结果
实验内容二的步骤:
1.启动ADS1.2,使用ARM Executable Image工程模板建立一个工程arm2.mcp。
2.建立汇编源文件arm2.s,编写实验程序,然后添加到工程中。
3.设置工程连接地址RO Base为0RW Base为0设置调试口地址Image entry point为0
4.编译连接工程,选择Project|Debug,启动AXD进行软件仿真调试。
5.打开寄存器窗口(Processor Registers),选择Current项监视寄存器R0,R1,R13(SP)和R14(LR)的值。
6.打开存储器观察窗口(Memory),设置观察地址为0x30003EA0,显示方式Size为32Bit,监视从0x30003F00起始的满递减堆栈区。
7.单步运行程序,跟踪程序执行的流程,观察寄存器
图5.9 运行结果
8.调试程序时,更改参数X和n来测试程序,观察是否得到正确的结果。将n的值设为0,然后执行程序。如图5.10所示。
图5.10 运行结果
五,实验总结
本次试验的主要目的是,掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。而且要求是,使用LDR指令读取0的数据,将数据加1,若结果小于10,则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。
本次实验主要是了解整个实验代码的含义和具体的在pc机上运行时的具体过程,由于汇编语言不是很熟悉,实验过程中困难比较大,整个实验做的比较慢。
您可能关注的文档
最近下载
- 基于STM32的室内空气质量检测仪的设计与实现.docx VIP
- 基于CMMI的软件过程度量.doc VIP
- 专题24 三角函数的图象与性质-2025年高考数学一轮复习讲义(新高考专用)(含答案).pdf VIP
- 22J603-1 铝合金门窗(建筑图集).docx
- 15.4 铁路运输法律制度(政策与法律法规 第7版).pptx VIP
- 计算机控制技术第2版于海生习题答案解析.pdf VIP
- 2026春苏教版(新教材)小学科学三年级下册(全册)教学设计(附教材目录P187).pdf
- 软件项目估算的指南(CMMI5).docx VIP
- 智能 检测与监测 技术-智能建造技术专47课件讲解.pptx VIP
- 110KV变电站设计(西安交通大学本科毕业论文).doc VIP
原创力文档

文档评论(0)