西 安 邮 电 大 学
(计算机学院)
课内实验报告
实验名称: ARM指令系统及运算基础实验
专业名称: 计算机科学与技术 班 级: 学生姓名: 学号(8位): 指导教师:_________ 实验日期: 2014年 04月10日
一. 实验目的
1.了解ADS1.2集成开发环境及ARMulator软件仿真。
2.掌握ARM7TDMI常用汇编指令的用法,并能编写简单的汇编程序。
3.学习使用LDR/STR/ADD/CMP/B指令完成存储器的访问及加法运算。
二. 实验设备
硬件:PC机 一台
软件:Windows 98/XP/2000系统,ADS1.2集成开发环境
三. 实验内容
1. 设计程序求数值1+2+3+4+……+100的和; 2. 设计从N个数中找到最大数的程序;
3. 设计程序实现如下功能:已知BUF1中有N1个从小到大顺序排列的互不相等的字符号数,BUF2中有N2个从小到大顺序排列的互不相等的字符号数,将BUF1和BUF2中的数合并到BUF3中,并按从小到大的顺序排列且互不相等。
四. 实验步骤 1.求和 ①创建工程
启动ADS1.2,使用ARM Executable Image工程模板建立一个工程Project1。 ②添加源文件,编辑源代码
建立汇编文件test1.s,输入源代码,然后添加到工程中。
③链接选项配置
设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设置调试入口地址Image entry point为0x40000000。
④编译链接工程
选择Project--〉Debug,启动AXD进行软件仿真调试 ⑤调试工程
打开寄存器窗口(Processor Register),选择Current项监视R0和R1的值。打开存储器观察窗口(Memory)设置观察地址为0x40003100,显示方式Size为32 Bit,监视0x40003100地址上的值。
2.求最大值
①创建工程
启动ADS1.2,使用ARM Executable Image工程模板建立一个工程Project2。 ②添加源文件,编辑源代码
建立汇编文件test2.s,输入源代码,然后添加到工程中。 ③链接选项配置
设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设置调试入口地址Image entry point为0x40000000。
④编译链接工程
选择Project--〉Debug,启动AXD进行软件仿真调试 ⑤调试工程
打开寄存器窗口(Processor Register),选择Current项监视R0和R1的值。打开存储器观察窗口(Memory)设置观察地址为0x40003100,显示方式Size为32 Bit,监视0x40003100地址上的值。
3.合并排序
①创建工程
启动ADS1.2,使用ARM Executable Image工程模板建立一个工程Project3。 ②添加源文件,编辑源代码
建立汇编文件test3.s,输入源代码,然后添加到工程中。 ③链接选项配置
设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设置调试入口地址Image entry point为0x40000000。
④编译链接工程
选择Project--〉Debug,启动AXD进行软件仿真调试 ⑤调试工程
打开寄存器窗口(Processor Register),选择Current项监视R0和R1的值。打开存储器观察窗口(Memory)设置观察地址为0x40003100,显示方式Size为32 Bit,监视0x40003100地址上的值。
五.实验心得
通过这次实验,是我对LDR,CMP等指令更加清楚,更确切的知道了具体在什么环境下用哪个,如何用,怎样控制。除了这次实验用到的这几个指令外,还有其他好多指令,以后更得加深学习。