实验一 ADS集成开发环境及汇编语言指令实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 ADS集成开发环境及汇编语言指令实验

1.1 实验目的

1.熟悉ADS1.2 软件开发环境;

2.理解ARM920T 汇编指令的用法,并能编写简单的汇编程序;

3.理解常用的ARM伪指令和伪操作的功能和使用。

1.2 实验内容

1.使用LDR 指令读取0x30003100 上的数据,将数据加1,若结果小于10,则使用STR 指令把结果写回原地址,若结果大于等于10,则把0 写回原地址。

2.使用ADS1.2 软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视R0,R1 的值,打开存储器观察窗口(Memory)监视0x30003100 上的值。

3.使用数据定义伪操作定义两个内存数据块,通过汇编指令将源数据块的内容复制到目的数据块,并对程序运行时相关寄存器、内存中的数据进行跟踪。

1.3 预备知识

1.ARM 指令系统内容;

2.ADS1.2 工程编辑和AXD 调试的内容。

1.4 实验设备

硬件:PC 机一台。

软件:Windows XP系统,ADS1.2 集成开发环境。

1.5 实验步骤

1.启动ADS1.2,使用ARM Executable Image 工程模板建立一个工程arm1.mcp。

2.建立汇编源文件arm1.s,编写实验程序(见1.6实验参考程序1),然后添加到工程中。

3.设置工程连接地址RO Base 为0x30000000,RW Base 为0x30003000,设置options 中的调试口地址Image entry point 为0x30000000。

设置方法:选择Edit->DebugRel Settings,打开下图所示的窗口:

图1.1 DebugRel Settings窗口

在左侧树形目录中选择“ARM Linker”,分别在右侧Output标签页和Option标签页中设置RO Base、RW Base和Image entry point。

4.编译连接工程,选择Project|Debug,启动AXD 进行软件仿真调试。

5.在调试工具AXD中,通过Processor Views菜单中的选项或对应的工具栏按钮,打开寄存器窗口(Processor Registers),选择Current 项监视R0,R1 的值,打开存储器观察窗口(Memory),设置观察地址为0x30003100,显示方式Size 为32Bit,监视0x30003100 地址上的值。

说明:在Memory 窗口中点击鼠标右键,Size 项中选择显示格式为8bit,16bit,32bit,如图1.2 所示。

图1.2 Memory 窗口显示格式

设置寄存器显示格式与之类似。使用鼠标左键选择某一个寄存器,然后点击鼠标右键,Format 项中选择显示格式Hex,Decimal 等等。如图1.3 所示。

图1.3 设置寄存器显示格式

6.可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行。这

时观察寄存器和0x30003100 地址中值的变化情况。运行结果如图1.4 所示。

图1.3 实验1 结果

7.参照以上步骤,对实验程序2进行编译、调试

1)考察sourceData数据段、destinationData数据段、代码段在内存中的地址分配情况;2)观察destinationData数据段内存区域中值的变化情况,分析程序所实现的功能和运行过程;

3)观察程序中所用到的寄存器的值变化,分析它们在程序中的用途。

1.6 实验参考程序

1、实验程序1清单:

COUNT EQU 0x30003100

AREA Example1,CODE,READONLY

ENTRY

CODE32

START LDR R1,=COUNT

MOV R0,#0

STR R0,[R1]

LOOP LDR R1,=COUNT

LDR R0,[R1]

ADD R0,R0,#1

CMP R0,#10

MOVHS R0,#0

STR R0,[R1]

B LOOP

END

2、实验程序2清单

AREA sourceData,DATA,READONLY

str DCD 1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,21,22,23,24

destinationData,DATA,READWRITE

AREA

dst SPACE 80

blockCopy,CODE,READONLY

AREA

num E QU 20

RegList RLIST {R4-R11} ENTRY

START

LDR

R0,=str

R1,=dst

LDR

R2,#num

MOV

MOVS R3,R2,LSR #3

copyWords BEQ

octCopy

R0!,RegList LDMIA

STMIA

R1!,RegList

R3,R3,#1

SUBS

octCopy

BNE

copyWords

R2,R2,#7

ANDS

stop

BEQ

wordCopy

R3,[R0],#4

LDR

R3,[R1],#4

STR

R2,R2,#1

SUBS

BNE

wordCopy stop

R0,#0x18

MOV

R1,=0x20026 LDR

0x123456

SWI

END

相关文档
最新文档