单寄存器加载与存储指令
這種指令用于把單一的數(shù)? 傳入或者傳出一個(gè)寄存器。支持的數(shù)據(jù)類型有字(32 位 ) 、半字(16 位)? 和字節(jié)。常用的單寄存器加載與存儲指令包括:
????????? LDR/STR??????????? 字?jǐn)?shù)據(jù)加載/ 存儲指令
????????? LDRB/STRB??????? 字節(jié)數(shù)據(jù)加載/ 存儲指令
????????? LDRH/STRH?????? 半字?jǐn)?shù)據(jù)加載/ 存儲指令
????????? LDRSB/LDRSH?? 有符號數(shù)字節(jié)/ 半字加載指令
????????? ( 注意:沒有strsb/strsh 指令)
??? 1. 匯編格式 : LDR{<cond>}{T} Rd ,addr
??????? 功能: LDR 指令用于從存儲器中將一個(gè) 32 位的字?jǐn)?shù)據(jù)加載到目的寄存器 Rd 中。該指令通常用于從存儲器中讀取32 位的字?jǐn)?shù)據(jù)到通用寄存器,然后對數(shù)據(jù)進(jìn)行處理。當(dāng)程序計(jì)數(shù)器 PC 作為目的寄存器時(shí),指令從存儲器中讀取的字?jǐn)?shù)據(jù)被當(dāng)作目的地址,從而可以實(shí)現(xiàn)程序流程的跳轉(zhuǎn)。
例 3.41?? LDR 指令示例:
;使用標(biāo)號
LDR R4,START?????????????????????????????? ;將存儲地址為START 的字?jǐn)?shù)據(jù)讀入R4??
STR R5,DATA1?????????????????????????????? ;將R5 存入存儲地址為DATA1 中
;前索引
LDR R0 ,[R1]???????????????????????????????? ;將存儲器地址為R1 的字?jǐn)?shù)據(jù)讀入寄R0?
LDR R0 ,[R1 ,R2]???????????????????????? ;將存儲器地址為R1+R2 的字?jǐn)?shù)據(jù)讀入寄存器R0 。
LDR R0 ,[R1 ,#8]??????????????????????? ;將存儲器地址為R1+8 的字?jǐn)?shù)據(jù)讀入寄存器R0 。
LDR R0 ,[R1 ,R2 ,LSL? #2]???????? ;將存儲器地址為R1 +R2×4 的字?jǐn)?shù)據(jù)讀入寄存器R0 。
;自動索引
STR R0 ,[R1 ,R2]? !?????????????????? ;將 R0 字?jǐn)?shù)據(jù)存入存儲器地址為R1+R2 的存儲單元中,并將新地址R1 +R2 寫入R1 。
STR R0 ,[R1 ,#8]? !????????????????? ;將 R0 字?jǐn)?shù)據(jù)存入存儲器地址為R1+8 的存儲單元中,并將新地址R1 +8 寫入R1
STR R0 ,[R1 ,R2 ,LSL? #2]? !?? ;將 R0 字?jǐn)?shù)據(jù)存入地址為R1 +R2×4 的存儲單元中,并將新地址R1 +R2×4 寫入R1 。
;后索引
LDR R0 ,[R1] ,#8?? ;將存儲器地址為R1 的字?jǐn)?shù)據(jù)讀入寄存器R0,并將新地址R1 +8 寫入R1
LDR R0 ,[R1] ,R2?? ;將存儲器地址為R1 的字?jǐn)?shù)據(jù)讀入寄存器R0,并將新地址R1 +R2 寫入R1 。
LDR R0 ,[R1] ,R2 ,LSL? #2?? ;將存儲器地址為R1 的字?jǐn)?shù)據(jù)讀入寄存器R0,并將新地址R1 +R2×4 寫入R1 。
轉(zhuǎn)載于:https://www.cnblogs.com/auleaf/archive/2011/09/19/2180911.html
總結(jié)
以上是生活随笔為你收集整理的单寄存器加载与存储指令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Ubuntu 8.04上安装Domin
- 下一篇: domino升级-602-651-851