试验二ARM汇编语言程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STR
R1, [R0]
…
…
END
在汇编程序中,用 AREA 指令定义一个段,并说明定义段的相关属性,本例中定义
了一个名为 Init 的代码段,属性为只读。ENTRY 伪指令标识程序的入口,程序的
末尾为 END 指令,该伪指令告诉编译器源文件的结束,每一个汇编文件都要以 END
结束。
下面是一个数据段的小例子
2
MOV sp,#0x400 blockcopy
MOVS r3,r2,LSR #3 BEQ copywords
STMFD sp!,{r4-r11} octcopy
LDMIA r0!,{r4-r11} STMIA r1!,{r4-r11} SUBS r3,r3,#1 BNE octcopy
LDMFD sp!,{r4-r11}
copywords ANDS r2,r2,#7 BEQ stop
wordcopy LDR r3,[r0],#4 STR r3,[r1],#4 SUBS r2,r2,#1 BNE wordcopy
stop B stop
AREA Bdata, DATA, READWRITE src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4 dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
实验二 ARM 汇编语言程序设计
一、实验目的
1. 了解 ARM 汇编语言的基本框架,学会使用 ARM 的汇编语言编程 2. 掌握 ARM 汇编指令
二、实验设备
1. EL-ARM-830 教学实验箱,PentiumII 以上的 PC 机,仿真器电缆。 2. PC 操作系统 WIN98 或 WIN2000 或 WINXP, ADS1.2 集成开发环境,仿真器驱动程序。
END
2、新建工程,并自行编写汇编程序,分别使用 LDR、STR、LDMIA、STMIA 操作,实现对 某段连续存储单元写入数据,并观察操作结果。
3
行结束,注释可以在一行的顶格书写。
详细的汇编语句及规范请参照 ARM 汇编的相关书籍、文档。
2. ARM 汇编语言程序的基本结构
在 ARM 汇编语言程序中,是以程序段为单位来组织代码。段是相对独立的指令
或数据序列,具有特定的名称。段可以分为代码段的和数据段,代码段的内容为执
行代码,数据段存放代码运行时所需的数据。一个汇编程序至少应该有一个代码段,
AREA DataArea, DATA, NOINIT, ALIGN=2
DISPBUF SPACE
200
RCVBUF
SPACE
200
…
…
ຫໍສະໝຸດ Baidu
DATA 为数据段的标识。
四、实验内容
1、理解下列程序,新建工程,加入下面的程序,并观察实验结果。 实验 A:
AREA EXAMPLE, CODE, READONLY x EQU 45 y EQU 64 stack_top EQU 0x1000
ENTRY MOV sp,#stack_top MOV r0,#x ATR r0,[sp] MOV r0,#y LDR r1,[sp] ADD r0,r0,r1 STR r0,[sp] Stop B Stop END
实验 B AREA EXAMPLE, CODE, READONLY Num equ 20 start LDR r0, =src LDR r1, ==dst MOV r2, #Num
当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形
成一个可执行文件。可执行映像文件通常由以下几部分构成:
◆ 一个或多个代码段,代码段为只读属性。
◆ 零个或多个包含初始化数据的数据段,数据段的属性为可读写。
◆ 零个或多个不包含初始化数据的数据段,数据段的属性为可读写。
链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位
置。源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定
相同。
3. 简单的小例子
下面是一个代码段的小例子
AREA Init,CODE,READONLY
ENTRY
LDR
R0, =0x3FF5000
LDR
R1, 0x0f
STR
R1, [R0]
1
LDR
R0, =0x3F50008
LDR
R1, 0x1
三、汇编语言简介
1. ARM 汇编的一些简要的书写规范
ARM 汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有
指令均不能顶格书写。ARM 汇编对标识符的大小写敏感,书写标号及指令时字母大
小写要一致。在 ARM 汇编中,ARM 指令、伪指令、寄存器名等可以全部大写或者全
部小写,但不要大小写混合使用。注释使用“;”号,注释的内容由“;”号起到此