实验二b 汇编指令实验

实验二b 汇编指令实验

ID:1246599

大小:323.00 KB

页数:0页

时间:2017-11-09

实验二b  汇编指令实验_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《实验二b 汇编指令实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验三汇编指令实验一、实验环境PC机一台ADS1.2集成开发环境一套二、实验目的1.了解ADS1.2集成开发环境及ARMulator软件仿真方法;2.掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序;3.掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。三、实验内容1.使用LDR/STR指令完成存储器的访问。2.使用数据处理指令实现数据传送和算术和逻辑运算。3.使用ADS1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视寄存器的值,打开存储器观察窗口(Mem

2、ory)监视存储器的值。根据以上要求完成该操作:使用LDR指令读取0x30003100上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址……周而复此循环;使用ADS1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视R0、R1的值,打开存储器观察窗口(Memory)监视0x30003100上的值。四、实验步骤(1)启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程Instruction1。(2)建

3、立汇编源文件TEST2.S,编写实验程序,然后添加到工程中。(3)设置工程链接地址ROBase为0x30000000,RWBase为0x30003000。设置调试入口地址Imageentrypoint为0x30000000。(4)编译链接工程,选择【Project】->【Debug】,启动AXD进行软件仿真调试。(5)打开寄存器窗口(ProcessorRegisters),选择Current项监视R0,R1的值。打开存储器观察窗口(Memory),设置观察地址为0x30003100,显示方式Size为32Bit,监视0x30003

4、100地址上的值。图2-1Memory窗口显示格式设置寄存器显示格式与之类似。使用鼠标左键选择某一个寄存器,然后点击鼠标右键,Format项中选择显示格式Hex,Decimal等等。如图2-2所示。图2-2设置寄存器显示格式(6)单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,调试时观察寄存器和0x30003100地址上的值。图2-3调试程序窗口六、思考题1.LDR伪指令与LDR加载指令的功能和应用有何区别,举例说明?2.LDR/STR指令的前索引偏移指令如何编写?指令是怎样操作的?3.在AXD调试时如何复位程序

5、?(提示:选择【File】->【ReloadCurrentImage】重新加载映象文件)七、参考程序COUNTEQU0x30003100;定义一个变量,地址为0x30003100AREAExample2,CODE,READONLY;声明代码段Example2ENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRR1,=COUNT;R1<=COUNTMOVR0,#0;R0<=0STRR0,[R1];[R1]<=R0,即设置COUNT为0LOOPLDRR1,=COUNTLDRR0,[R1];R0<=[R1]ADDR

6、0,R0,#1;R0<=R0+1CMPR0,#10;R0与10比较,影响条件码标志MOVHSR0,#0;若R0大于等于10,则此指令执行,R0<=0STRR0,[R1];[R1]<=R0,即保存COUNTBLOOPEND实验预作关键过程及结果图:单步运行观看寄存器和存储器的变化:具体指令讲解见指令手册。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。