您的位置 首页 观点

ARM数据加载与存储指令(一)

数据加载与存储指令时ARM在寄存器与存储器之间实现数据传送的一类指令。实验目的:l单寄存器数据传送指令的运用和各种变址寻址模式的掌握…

数据加载存储指令ARM在寄存器与存储器之间完结数据传送的一类指令。


试验意图:
l 单寄存器数据传送指令的运用和各种变址寻址方式的把握
l 多寄存器数据传送指令的运用和各种变址寻址方式的把握
l 单个数据仿制和数据块仿制的办法。
l 运用调试器中各种窗口调查完结各指令操作后寄存器、存储器、标签地址、机器指令等的改变状况。
一、 单寄存器的加载和存储指令LDR|STR
AREA Lab1,CODE
ENTRY
START
ADR R1,SRC
ADR R2,DST
COPY
LDR R0,[R1]
STR R0,[R2]
ADD R1,R1,#0x4
ADD R2,R2,#0x4
LDR R0,[R1]
STR R0,[R2]
ADD R1,R1,#0x4
ADD R2,R2,#0x4
LDR R0,[R1]
STR R0,[R2]

STOP
B STOP


SRC DCB “one small!”
ALIGN
DST DCB “three big!”
END
程序阐明:
1. 伪指令ADR是将一个寄存器相关变大时或程序相关表达式的地址存入寄存器中,在比如中相当于使R1指向SRC,R2指向DST地址,即初始化地址指针。
2. DCB的作用是分配一组字节内存并界说其内容为指定字符串,也可以用“=”代替:
SRC = “one small!”
DST =“three big!”

完结下列使命
1.阅读程序exp6_1.s,写出程序的功用。设置代码段的基地址为0x8000。用AXD单步调试程序,调查每履行一步今后,相应的寄存器和存储器的改变状况,完结表格。
翻开的process view窗口如下:register,disassembly,low lever symbols,memory

序号 履行指令 指令履行后改变状况
寄存器 存储器
R0 R1 R2 PC 0x8040 0x8041 0x8042 0x8043 0x8044 0x8045 0x8046 0x8047 0x8048 0x8049
0 0x0 0x0 0x0 0x8000 0x74
t
0x68
H
0x72
r
0x65
e
0x65
e
0x20
_
0x62
b
0x69
i
0x67
g
0x21
!
1
2
3
4
5
6
7
8
9
10

2.程序中运用的寻址办法是直接寻址中的零变址办法,请将程序改为前变址方式和后变址方式。(绘图剖析各种变址寻址方式,并规划程序验证。)
3.用多寄存器传送指令修正程序。

答案:
1. 程序的功用是将存储器中SRC处的源数据经过数据传送指令传送到DST处。
2. 前变址和后变址
办法一
COPY LDR R0,[R1],#4
STR R0,[R2],#4
LDR R0,[R1],#4
STR R0,[R2],#4
LDR R0,[R1],#4
STR R0,[R2],#4
办法二
SUB R1,R1,#4
SUB R2,R2,#4
MOV R3,#1
CPY
LDR R0,[R1,#4]!
STR R0,[R2,#4]!
CMP R3,#3
ADD R3,R3,#1
BNE CPY
办法三
LDR R0,[R1]
STR R0,[R2]
LDR R0,[R1,#4]
STR R0,[R2,#4]
LDR R0,[R1,#8]
STR R0,[R2,#8]

3. 多寄存器传送指令
LDMIA R1!,{R3-R5}
STMIA R2!,{R3-R5}


一、 多寄存器的加载和存储指令
AREA Lab2,CODE
ENTRY
START
LDR sp,=NUM
LDMFD SP!,{R0-R4}
ADD R4,R0,R1
ADD R4,R4,R2
ADD R4,R4,R3
MOV R4,R4,LSR #2
STR R4,[SP]
STOP
B STOP

AREA Dblock,DATA
NUM DCD 0x12,0x34,0x56,0x78
END
程序阐明:
1. 界说一个名为Dblock的数据区域
2. 伪指令DCD的作用是分配一组字内存并界说其内容,分配的内存一定是4的倍数。也可以用&代替。
NUM & 0x12, 0x34,0x56,0x78

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/262741.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部