ARM寻址方式实验
时间:11-21
来源:互联网
点击:
一、实验目的
1. 理解各种寻址方式:立即数;寄存器;寄存器移位;寄存器间接寻址;变址寻址。
2. 巩固和提高在ADS环境中用汇编语言进行程序设计的基本技能。
二、实验内容
1. 在ADS下建立工程,并配置开发环境。
2. 创建一个汇编语言源程序,并添加到工程中,对其进行编辑、编译和链接。
3. 使用AXD调试程序,观察各种寻址方式的功能。
三、实验过程(exp4_1_1.s)
AREA AddressingMode_1,CODE,READONLY
ENTRY
1) MOV R5,#15
2) MOV R2,#0xC
3) MOV R1,R5
4) ADD R0,R1,R2,LSR #3
5) LDR R4,=0x900600
6) STR R0,[R4]
STR R0,[R4,#4]
STR R0,[R4,#4]!
HERE B HERE
END
1) 写出上述指令的寻址方式
2) 执行下面两条指令,改变***的内容,观看寄存器R1的变化。
MOV R5,#15
MOV R1,R5, *** #1
***的内容如下:
LSL:逻辑左移(Logical Shift Left)
ASL:算术左移(Arithmetic Shift Left)
LSR:逻辑右移(Logical Shift Right)
ASR:算术右移(Arithmetic Shift Right)
ROR:循环右移(Rotate Right)
RRX:扩展为1的循环右移(Rotate Right eXtended by 1 place )
3) MOV R5,#0xFFF编译时是否会出错?有错误
4) 观察执行 MOV R1,R5和ADD R0,R1,R2,LSR #3指令后相关的寄存器的变化。
4)观察执行LDR R4,=0x900600和STR R0,[R4]指令后,相应的存储器和寄存器的变化。
寄存器 register
存储器 memory
R0 32位 0b 00000000 00000000 00000000 00000010
1.
2.
二、实验内容
1.
2.
3.
三、实验过程(exp4_1_1.s)
AREA
ENTRY
1)
2)
3)
4)
5)
6)
STR R0,[R4,#4]
STR R0,[R4,#4]!
HERE B HERE
END
1)
2)
MOV R5,#15
MOV R1,R5, ***
***的内容如下:
LSL:逻辑左移(Logical Shift Left)
ASL:算术左移(Arithmetic Shift Left)
LSR:逻辑右移(Logical Shift Right)
ASR:算术右移(Arithmetic Shift Right)
ROR:循环右移(Rotate Right)
RRX:扩展为1的循环右移(Rotate Right eXtended by 1 place )
3)
4)
寄存器 register
存储器 memory
(8位) | |
0009 0000 | 00000010 |
0009 0001 | |
0009 0002 | |
0009 0003 |
序号 | 执行指令 | 指令执行后的变化情况 | ||||||
寄存器(值用16进制表示) | 存储器(值用16进制表示) | |||||||
R0 | R1 | R2 | R3 | R4 | R5 | |||
MOV R5,#15 | 0 | 0 | 0 | 0 | 0 | 15 | ||
MOV R2,#0xC | 0 | 0 | 12 | 0 | 0 | 15 | ||
MOV R1,R5 | 0 | 15 | 12 | 0 | 0 | 15 | ||
ADD R0,R1,R2,LSR #3 | 21 | 15 | 12 | 0 | 0 | 15 | ||
LDR R4,=0x90000 | 21 | 15 | 12 | 0 | 589824 | 15 | ||
STR R0,[R4] | 21 | 15 | 12 | 0 | 589824 | 15 | ||
STR R0,[R4,#4] | ||||||||
STR R0,[R4,#4]! | ||||||||
ARM寻址方 相关文章:
- 第1天-ARM寻址方式(11-26)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)