嵌入式 > 嵌入式开发 > 详情

ARM寻址方式实验

发布时间:2024-01-16 发布时间:
|
一、实验目的
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
(8位)
0009 000000000010
0009 0001
0009 0002
0009 0003

序号执行指令指令执行后的变化情况
寄存器(值用16进制表示)存储器(值用16进制表示)
R0R1R2R3R4R5
MOV R5,#15
0000015
MOV R2,#0xC
00120015
MOV R1,R5
015120015
ADD R0,R1,R2,LSR #3
2115120015
LDR R4,=0x90000
211512058982415
STR R0,[R4]
211512058982415
STR R0,[R4,#4]
STR R0,[R4,#4]!



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
485总线升级成CAN总线