实验二存储器的访问指令(2学时) 1.实验目的 ■了解ADS1.2集成开发环境和ARMulator软件仿真。 ■掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序。 ■掌握指令条件执行和使用LDR/STR指令完成存储器的访问。 2.实验设备 ■硬件:PC机 一台 ■软件:Windows98XP2000系统,ADS1.2集成开发环境 3.实验内容 (1)使用指令LDR读取0x40003100地址上的数据,将数据加1。若结果小于 10,则使用STR指令把结果写回原地址;若结果>=10,则把0写回原地址。 (2)使用ADS1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗 口(Processor Register)监视Ro和R1的值,打开存储器观察窗口监视 0x40003100地址上的值。 4.实验预习要求 (I)仔细阅读ARM指令系统内容。 (2)仔细阅读ADS工程编辑和AXD调试的内容。 5.实验步骤 (1)启动ADSl.2IDE集成开发环境,选择File一New,使用ARM Executable Image工程模板建立一个工程。 (2)建立一个新的源文件test2.s,编写程序接添加到工程中。 (3)设置连接地址R0Base为0x40000000,RW Base为0x40003000。设置调 试入口地址为0x40000000。 (4)选择Project一Make,将编译连接整个工程。 (5)单步、全速、运行程序,设置断点,打开寄存器窗口(Processor Register) 监视Ro和R1的值,打开存储器观察窗口监视0x40003100地址上的值。 说明:单击选择某一个寄存器,然后右击鼠标,在format下拉菜单中选 择显示格式hex、decimal等。 6.实验程序 Count EQU 0x40003100;定义一个变量地址 AERA Example,CODE,READONLY ENTRY CODE32 3
3 实验二 存储器的访问指令(2 学时) 1. 实验目的 ◼ 了解 ADS 1.2 集成开发环境和 ARMulator 软件仿真。 ◼ 掌握 ARM7TDMI 汇编指令的用法,并能编写简单的汇编程序。 ◼ 掌握指令条件执行和使用 LDR/STR 指令完成存储器的访问。 2. 实验设备 ◼ 硬件:PC 机 一台 ◼ 软件:Windows98/XP/2000 系统,ADS1.2 集成开发环境 3. 实验内容 (1)使用指令 LDR 读取 0x40003100 地址上的数据,将数据加 1。若结果小于 10,则使用 STR 指令把结果写回原地址;若结果>=10,则把 0 写回原地址。 (2)使用 ADS1.2 软件仿真,单步、全速运行程序,设置断点,打开寄存器窗 口(Processor Register)监视 Ro 和 R1 的值,打开存储器观察窗口监视 0x40003100 地址上的值。 4. 实验预习要求 (1)仔细阅读 ARM 指令系统内容。 (2)仔细阅读 ADS 工程编辑和 AXD 调试的内容。 5. 实验步骤 (1)启动 ADS1.2IDE 集成开发环境,选择 File—New,使用 ARM Executable Image 工程模板建立一个工程。 (2)建立一个新的源文件 test2.s,编写程序接添加到工程中。 (3)设置连接地址 RO Base 为 0x40000000,RW Base 为 0x40003000。设置调 试入口地址为 0x40000000。 (4)选择 Project—Make,将编译连接整个工程。 (5)单步、全速、运行程序,设置断点,打开寄存器窗口(Processor Register) 监视 Ro 和 R1 的值,打开存储器观察窗口监视 0x40003100 地址上的值。 说明:单击选择某一个寄存器,然后右击鼠标,在 format 下拉菜单中选 择显示格式 hex、decimal 等。 6. 实验程序 Count EQU 0x40003100 ;定义一个变量地址 AERA Example,CODE,READONLY ENTRY CODE32
7.思考 (1)若使用LDRB/STRB代替程序中的LDR/STR,程序能够正确执行吗? 4
4 7. 思考 (1)若使用 LDRB/STRB 代替程序中的 LDR/STR,程序能够正确执行吗?
实验三数据处理指令的使用(2学时) 1.实验目的 ■掌握ARM数据处理指令的使用方法 ■了解ARM指令灵活的第二个操作数。 2.实验设备 ■硬件:PC机一台 ■软件:Windows98/XP/2000系统,ADS1.2集成开发环境 3.实验内容 (1)使用MOV和MVN指令访问通用寄存器。 (2)使用ADD、SUB、AND、ORR、CMP和TST等指令完成数据加减及逻辑运算。 4.实验预习要求 (1)仔细阅读ARM指令系统内容。 (2)仔细阅读ADS工程编辑和AXD调试的内容。 5.实验步骤 (1)启动ADSl.2IDE集成开发环境,选择File一New,使用ARM Executable Image工程模板建立一个工程。 (2)建立一个新的源文件test3.s,编写程序接添加到工程中。 (3)设置连接地址R0Base为0x40000000,RW Base为0x40003000。设置调 试入口地址为0x40000000。 (4)选择Project一Make,将编译连接整个工程。 (5)单步、全速、运行程序,设置断点,打开寄存器窗口(Processor Register) 监视Ro和R1的值,打开存储器观察窗口监视0x40003100地址上的值。 说明:单击选择某一个寄存器,然后右击鼠标,在format下拉菜单中选 择显示格式hex、decimal等。 6.实验程序 X EQU 11:定义一个变量 Y EQU 8 BIT23 EQU (1<<23);定义Bit23的值为0x00800000 AERA Example,CODE,READONLY ENTRY CODE32 START Mov R0,#x Mov R1,#Y 5
5 实验三 数据处理指令的使用(2 学时) 1. 实验目的 ◼ 掌握 ARM 数据处理指令的使用方法 ◼ 了解 ARM 指令灵活的第二个操作数。 2. 实验设备 ◼ 硬件:PC 机 一台 ◼ 软件:Windows98/XP/2000 系统,ADS1.2 集成开发环境 3. 实验内容 (1)使用 MOV 和 MVN 指令访问通用寄存器。 (2)使用 ADD、SUB、AND、ORR、CMP 和 TST 等指令完成数据加减及逻辑运算。 4. 实验预习要求 (1)仔细阅读 ARM 指令系统内容。 (2)仔细阅读 ADS 工程编辑和 AXD 调试的内容。 5. 实验步骤 (1)启动 ADS1.2IDE 集成开发环境,选择 File—New,使用 ARM Executable Image 工程模板建立一个工程。 (2)建立一个新的源文件 test3.s,编写程序接添加到工程中。 (3)设置连接地址 RO Base 为 0x40000000,RW Base 为 0x40003000。设置调 试入口地址为 0x40000000。 (4)选择 Project—Make,将编译连接整个工程。 (5)单步、全速、运行程序,设置断点,打开寄存器窗口(Processor Register) 监视 Ro 和 R1 的值,打开存储器观察窗口监视 0x40003100 地址上的值。 说明:单击选择某一个寄存器,然后右击鼠标,在 format 下拉菜单中选 择显示格式 hex、decimal 等。 6. 实验程序 X EQU 11 ;定义一个变量 Y EQU 8 BIT23 EQU (1<<23) ;定义 Bit23 的值为 0x00800000 AERA Example,CODE,READONLY ENTRY CODE32 START Mov R0,#X Mov R1,#Y
;使用MOV、ADD指令实现:R8=R3=X+Y ;使用MWN、SUB指令实现:R5=OX5 FFFFFF8-R8*8 ;使用cmp指令判断(5×y/2)》(2*x)吗?若大于则r5=0x5 ffffff8, 否则,r5r5|0x000000ff ;使用tst指令测试r5的bit23是否为1,若是则将bit6位清0 (使用BIC指令) B START END 6
6 ;使用 MOV、ADD 指令实现:R8=R3=X+Y ;使用 MVN、SUB 指令实现:R5=0X5FFFFFF8 - R8 * 8 ;使用cmp指令判断(5×y/2)>(2*x)吗?若大于则r5=0x5ffffff8, 否则,r5=r5|0x000000ff ;使用 tst 指令测试 r5 的 bit23 是否为 1,若是则将 bit6 位清 0 (使用 BIC 指令) B START END