文档详情

 实验二 ADS下简单ARM汇编程序实验.doc

发布:2016-11-30约2.79千字共11页下载文档
文本预览下载声明
实验二 ADS下简单ARM汇编程序实验 实验目的: 熟悉ADS1.2下进行汇编语言程序设计的基本流程; 熟悉在ADS中创建工程及编写、编译和运行汇编语言程序的方法; 熟悉AXD中各种调试功能。 实验环境: 硬件:PC机。 软件ADS1.2。 实验内容: 在ADS中新建工程,并设置开发环境。 在Code Warrior 环境中编辑、编译和链接汇编语言程序,并生成可执行文件。 在AXD中调试汇编程序; 使用命令行界面编辑、编译和链接汇编程序。 实验过程: 本实验要求在ADS环境下,编写一个汇编程序,计算S=1+2+3……+n的累加值。 把累加结果S存入到存储器的指定位置;在AXD中调试该程序,使用ARMulator模拟目标机。 新建工程。 打开Code Warrior,选择File-New(project)选项,使用ARM Executable Image模版新建一个工程。 2、设置编译和链接选项。 由于我们使用的是模拟机,设置汇编语言编译器的模拟处理器架构为Xscale;在ARM Linker中,选择output选项卡并选择Linktype为Simple类型,确认RO Base为0x8000,修改RW Base为0x9000,如下图所示。 为当前工程添加源程序文件。 ARM汇编程序源文件后缀名为S大小写均可。 确保添加入当前工程复选框选上。 编辑源程序代码。 参考程序add.s : ;armadd源程序 N EQU 7 ;累加次数 ;定义名为Adding的代码段 AREA Adding,CODE,READONLY ENTRY MOV R0,#0 MOV R1,#1 REPEAT ADD R0,R0,R1 ADD R1,R1,#1 CMP R1,#N BLE REPEAT LDR R2,=RESULT STR R0,[R2] HERE B HERE 定义名为Dataspace的数据段 AREA Dataspace,DATA,READWRITE RESULT DCD 0 END 编译汇编源代码文件。 右击add.S文件,选择Compile,如果没有成功会弹出错误和警告窗口。 生成.O目标代码文件。 编译整个工程。 选择Project(Make进行整个工程的编译。可以在目录空间查看是否生成了映像文件add.axf。 确认调试目标设置。 设置目标处理器型号。 运行映像文件。 选择如图所示按钮运行映像文件,运行结果如下 调试准备 在AXD中,打开各个观察窗口,做调试准备。选择Processor Views(Registers选项,打开ARM寄存器显示窗口。调整窗口大小,使得Corrent节点的R0~R2寄存器可见。选择Processor Views(Memory选项,打开ARM存储器显示窗口。在Start Address输入框中输入准备查看的内存区域首地址0x9000。 10、调试映像文件。 点击鼠标所指图标 打开调试窗口。 为了便于调试,观察各个寄存器和存储器的变化情况,推荐调试窗口布局如图所示: 11、单步运行程序,观察并记录结果。 在AXD中,选择Execute(Step选项,或者F10键,单步运行程序,查看相关寄存器和存储器相应地址上的变化,请把每一步的结果填入下表中。 运行结果如图所示: 分析源程序可以看出,我们的程序仅对少数几个寄存器进行了读写操作,所以观察时应注意红色框中的内容变化。 序号 执行指令 执行后的变化情况 寄存器(十六进制) 存储器(十六进制) R0 R1 R2 PC 0x9000 1 MOV R0,#0 2 3 4 5 6 7 注意:如果错过记录的时机可以选择File(Reload Current Image重新加载映像文件。 实验思考: 有没有办法让AXD中寄存器和存储器单元的值直接显示为十进制? of the enemys attack. Troops, and troops were scattered, Qian Kangmin, Commander, Deputy Commander Ding Bingcheng and others heroic martyrdom. Turk foreign resistance members for the evacuation. Since then, Wujiang County Government District long Zhang Pinquan was kil
显示全部
相似文档