新闻中心

EEPW首页>嵌入式系统>设计应用> ARM寻址方式实验

ARM寻址方式实验

作者: 时间:2016-11-21 来源:网络 收藏
一、实验目的
1.理解各种寻址方式:立即数;寄存器;寄存器移位;寄存器间接寻址;变址寻址。
2.巩固和提高在ADS环境中用汇编语言进行程序设计的基本技能。

二、实验内容
1.在ADS下建立工程,并配置开发环境。
2.创建一个汇编语言源程序,并添加到工程中,对其进行编辑、编译和链接。
3.使用AXD调试程序,观察各种寻址方式的功能。
三、实验过程(exp4_1_1.s)
AREAAddressingMode_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
(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寻址方

评论


技术专区

关闭