<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM數據加載與存儲指令(一)

ARM數據加載與存儲指令(一)

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò ) 收藏
數據加載存儲指令時(shí)ARM在寄存器與存儲器之間實(shí)現數據傳送的一類(lèi)指令。

實(shí)驗目的:
l 單寄存器數據傳送指令的運用和各種變址尋址模式的掌握
l 多寄存器數據傳送指令的運用和各種變址尋址模式的掌握
l 單個(gè)數據復制和數據塊復制的方法。
l 利用調試器中各種窗口觀(guān)察完成各指令操作后寄存器、存儲器、標簽地址、機器指令等的變化情況。
一、 單寄存器的加載和存儲指令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
程序說(shuō)明:
1. 偽指令ADR是將一個(gè)寄存器相關(guān)變大時(shí)或程序相關(guān)表達式的地址存入寄存器中,在例子中相當于使R1指向SRC,R2指向DST地址,即初始化地址指針。
2. DCB的作用是分配一組字節內存并定義其內容為指定字符串,也可以用“=”代替:
SRC = “one small!”
DST =“three big!”

完成下列任務(wù)
1.閱讀程序exp6_1.s,寫(xiě)出程序的功能。設置代碼段的基地址為0x8000。用AXD單步調試程序,觀(guān)察每執行一步以后,相應的寄存器和存儲器的變化情況,完成表格。
打開(kāi)的process view窗口如下:register,disassembly,low lever symbols,memory
序號執行指令指令執行后變化情況
寄存器存儲器
R0R1R2PC0x80400x80410x80420x80430x80440x80450x80460x80470x80480x8049
00x00x00x00x80000x74
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處的源數據通過(guò)數據傳送指令傳送到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
程序說(shuō)明:
1. 定義一個(gè)名為Dblock的數據區域
2. 偽指令DCD的作用是分配一組字內存并定義其內容,分配的內存一定是4的倍數。也可以用&替代。
NUM & 0x12, 0x34,0x56,0x78


關(guān)鍵詞: ARM數據加載存儲指

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>