ARM实验三基于ARM的汇编编程实验.docVIP

  • 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机上运行时的具体过程,由于汇编语言不是很熟悉,实验过程中困难比较大,整个实验做的比较慢。

文档评论(0)

1亿VIP精品文档

相关文档