arm汇编指令说明-ARM基本指令实验
1、 实验内容或题目
●熟悉开发环境的使用并使用ldr/str,mov 等指令访问寄存器或存储单元。
●使用add/sub/lsl/lsr/and/orr 等指令,完成基本数学/逻辑运算。
2、 实验目的与要求
●初步学会使用Embest IDE for ARM 开发环境及ARM 软件模拟器;
●通过实验掌握简单ARM 汇编指令的使用方法。
3、 实验步骤与源程序
⑴ 实验步骤
1) 新建工程:
运行Embest IDE 集成开发环境,选择菜单项File → New Workspace,系统弹出一个对话框,输入相关内容。点击OK 按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程。
2) 建立源文件:
点击菜单项File → New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位于窗口中第
一行,按照实验参考程序编辑输入源文件代码。
3) 添加源文件:
选择Project → Add To Project → Files 命令,或单击工程管理窗口中的相应右键菜单命令,
弹出文件选择对话框,在工程目录下选择刚才建立的源文件asm1_a.s。
4) 基本配置:
选择菜单项Project → Settings…或快捷键Alt+F7,弹出工程设置对话框。在工程设置对话框
中,选择Processor 设置对话框,按照图3-2 所示,进行目标板所用处理器的配置。
5) 生成目标代码:
选择菜单项Build → Build asm_a 或快捷键F7,生成目标代码。
6) 调试设置:
选择菜单项Project → Settings…或快捷键Alt+F7,弹出工程设置对话框。在工程设置对话框
中,选择Remote 设置对话框,按照图3-4 所示对调试设备模块进行设置。
7) 选择Debug 菜单Remote Connect 进行连接软件仿真器,执行Download 命令下载程序,
并打开寄存器窗口。打开memory 窗口,观察地址0x8000~0x801f 的内容,与地址0xff0~0xfff
的内容。
8) 单步执行程序并观察和记录寄存器与memory 的值变化。
9) 结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM 指令的使用。
10)理解和掌握实验后,完成实验练习题。
首先在C盘根目录下找到EmbestIDE文件夹,打开Examples\ARM_Basic\3.1_asm1,这是实验的第一题。系统用EmbestIDE Pro软件打开此项目。然后在软件中操作Build->Build asm1_a,接着再操作Debug Remote Connect,最后操作Debug Download.便能得出结果。
⑵ 源代码
题目一:
0x00008000 mov sp, #4096
0x00008004 mov r0, #45
0x00008008 str r0, [sp]
0x0000800c mov r0, #64
0x00008010 ldr r1, [sp]
0x00008014 add r0, r0, r1
0x00008018 str r0, [sp]
stop :
0x0000801c b 0x801c
题目二:
0x00008000 mov r0, #45
0x00008004 mov r0, r0, lsl #8
0x00008008 mov r1, #64
0x0000800c add r2, r0, r1, lsr #1
0x00008010 mov sp, #4096
0x00008014 str r2, [sp]
0x00008018 mov r0, #87
0x0000801c and r0, r0, #255
0x00008020 mov r1, #64
0x00008024 add r2, r0, r1, lsr #1
0x00008028 ldr r0, [sp]
0x0000802c mov r1, #1
0x00008030 orr r0, r0, r1
0x00008034 mov r1, r2
0x00008038 add r2, r0, r1, lsr #1
stop :
0x0000803c b 0x803c
题目三:
新建文件,输入书上源代码。
源程序
.equ R0, 0x8000
.equ R1, 0x01
.equ R2, 0x10
.global _start
.text
_start: /* code start */
STMIB R0!,{R1,R2}
LDMIA R0!,{R1,R2}
stop:
.end
4、 测试数据与实验结果(可以抓图粘贴)
(1) 实验指导书3.1a工程程序的功能,程序输出结果,寄存器R0,R1,R2的变化过程
(2) 实验指导书3.1b工程程序的功能,程序输出结果,寄存器R0,R1,R2的变化过程
(3) 写出教材P144习题3对应的程序,并得出结果。
(4) 写出实验指导书习题1的程序,并得出结果(选做)。
题目一:3.1a程序实现简单加法运算,结果是,,
R0:0->45->64->109
R1:0->45
R2:0
题目二: 3.1b程序实现简单的算术逻辑运算:
R0:0->45->11520->87->11552->11553
R1:0->64->1->119
R2:0->11552->119->11612
题目三:
R0:0->0x8000->0x8008->0x8010
R1:0->0x0001->0x0010
R2:0->0x0010-> 0xe3a02010
5、 结果分析与实验体会
本次嵌入式实验是我们第一次做实验。第一次来到技术中心的901机房,机房中有许多的电脑和实验设备。我们使用的是Embest IDE for ARM这款国产的ARM仿真模拟软件。 Embest IDE 是一套应用于嵌入式软件开发的新一代集成开发环境。它提供高效明晰的图形化的嵌入式应用软件开发平台,包括一整套完备的面向嵌入式系统的开发和调试工具:编辑器、编译器、连接器、调试器、工程管理器等。Embest IDE 集成开发环境界面风格同 Microsoft Visual Studio,是一套良好的嵌入式软件可视化开发环境。所以对我们来说使用起来不是很困难。
本次实验中第一个是简单的加法运算,第二个移位运算,第三个是存取的实验。通过此次实验,我们对嵌入式系统的该软件有了初步地了解。相信我们通过以后的实验及课堂教学中能更好的掌握这门知识219