ARM数据加载与存储指令(一)
(2012-06-13 17:53:36)
标签:
ARM汇编语言 |
分类: 汇编语言 |
ARM数据加载与存储指令
数据加载与存储指令时ARM在寄存器与存储器之间实现数据传送的一类指令。
实验目的:
l
l
l
l
一、 单寄存器的加载和存储指令LDR|STR
START
COPY
STOP
SRC
DST
程序说明:
1.
2.
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.
2.
方法一
COPY LDR R0,[R1],#4
LDR R0,[R1],#4
方法二
CPY
方法三
LDR R0,[R1]
LDR R0,[R1,#8]
3.
LDMIA
STMIA
一、 多寄存器的加载和存储指令
START
STOP
NUM
程序说明:
1.
2.
NUM & 0x12, 0x34,0x56,0x78