实验八 ARM寻址方式实验.doc
文本预览下载声明
实验八 ARM寻址方式实验
1、实验目的
理解各自寻址方式
巩固和提高在ADS环境中用汇编语言进行程序设计的基本技能
2、实验内容
任务一:简单ARM寻址方式实验
(1)请按以前实验要求创建项目,并添加exp4_1_1.s源文件,文件内容如下:
(2)通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,并把每一步的执行结果填入表1、表2、表3中。执行File-Reload Current Image 命令可以重新加载和运行当前映像文件。
表1 单步运行结果
序号 执行指令 指令执行后的变化情况(用十六进制表示) 寄存器 存储器 R0 R1 R2 R3 R4 R5 1 MOV R5,#15 不填 2 MOV R2,#0xc 不填 3 MOV R1,R 不填 4 ADD R0,R1,R2,LSR #3 不填 5 LDR R4,=0x90000 不填 6 STR R0,[R4] 填写表2 7 STR R0,[R4,#4] 填写表3 8 LDR R3,[R4,#4]! 不填 表2 单步运行结果
地址 0x90000 0x90001 0x90002 0x90003 值
表3 单步运行结果
地址 0x90004 0x90005 0x90006 0x90007 值
任务二:较为复杂的ARM寻址方式实验
(1)在项目中删除exp4_1_1.s,并添加exp4_2_1.s源文件,文件内容如下:
(2)同样通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,并把每一步的执行结果填入表4、表5、表6中。注意,在单步执行“STMFD R13!,{R5-R6}”指令前,把存储器显示窗口中的首要地址修改为0x807F0。执行File-Reload Current Image 命令可以重新加载和运行当前映像文件。
表4 单步运行结果
序号 执行指令 指令执行后的变化情况(用十六进制表示) 寄存器 存储器 R0 R1 R2 R3 R4 R5 R6 R13 1 MOV R0,#2 不填 2 MOV R1,#5 不填 3 MOV R2,#3 不填 4 LDR R4,=0x90000 不填 5 STMIA R4,{R0-R2} 填写表5 6 LDR R3,[R4,R0,ASL #1]! 不填 7 LDMIA R4!,{R5,R6} 不填 8 LDR R13,=0x80800 不填 9 STMFD R13!,{R5-R6} 填写表6 10 LDMFD R13!,{R0,R1} 不填
表5 单步运行结果
地址 0x90000 0x90001 0x90002 0x90003 值
地址 0x90004 0x90005 0x90006 0x90007 值
地址 0x90008 0x90009 0x9000a 0x9000b 值
表6 单步运行结果
地址 0x807F8 0x807F9 0x807Fa 0x807Fb 值
地址 0x807Fc 0x807Fd 0x807Fe 0x807Ff 值
显示全部