資料介紹
5.3 單寄存器的Load/Store指令
Load/Store內(nèi)存訪問指令在ARM寄存器和存儲器之間傳送數(shù)據(jù)。ARM指令中有3種基本的數(shù)據(jù)傳送指令。
① 單寄存器Load/Store指令(Single Register)
這些指令在ARM寄存器和存儲器之間提供更靈活的單數(shù)據(jù)項傳送方式。數(shù)據(jù)項可以是字節(jié)、16位半字或32位字。
② 多寄存器Load/Store內(nèi)存訪問指令
這些指令的靈活性比單寄存器傳送指令差,但可以使大量的數(shù)據(jù)更有效地傳送。它們用于進(jìn)程的進(jìn)入和退出、保存和恢復(fù)工作寄存器以及拷貝存儲器中的一塊數(shù)據(jù)。
?、?單寄存器交換指令(Single Register Swap)
這些指令允許寄存器和存儲器中的數(shù)值進(jìn)行交換,在一條指令中有效地完成Load/Store操作。它們在用戶級編程中很少用到。它的主要用途是在多處理器系統(tǒng)中實現(xiàn)信號量(Semaphores)的操作,以保證不會同時訪問公用的數(shù)據(jù)結(jié)構(gòu)。
5.3.1 字?jǐn)?shù)據(jù)傳送指令
這種指令用于把單一的數(shù)據(jù)傳入或者傳出一個寄存器。支持的數(shù)據(jù)類型有字節(jié)(8位)、半字(16位)和字(32位)。
表5.1總結(jié)了所有單寄存器的Load/Store指令。
表5.1 單寄存器Load/Store指令
指 令作 用操 作
LDR把一個字裝入一個寄存器Rd←mem32[address]
STR將存儲器中的字保存到寄存器Rd→mem32[address]
LDRB把一個字節(jié)裝入一個寄存器Rd←mem8[address]
STRB將寄存器中的低8位字節(jié)保存到存儲器Rd→mem8[address]
LDRH把一個半字裝入一個寄存器Rd←mem16[address]
STRH將寄存器中的低16位半字保存到存儲器Rd→mem16[address]
LDRBT用戶模式下將一個字節(jié)裝入寄存器Rd←mem8[address] under user mode
STRBT用戶模式下將寄存器中的低8位字節(jié)保存到存儲器Rd→mem8[address] under user mode
LDRT用戶模式下把一個字裝入一個寄存器Rd←mem32[address]under user mode
STRT用戶模式下將存儲器中的字保存到寄存器Rd→mem32[address] ]under user mode
LDRSB把一個有符號字節(jié)裝入一個寄存器Rd←sign{mem8[address]}
LDRSH把一個有符號半字裝入一個寄存器Rd←sign{mem16[address]}
1.LDR指令
?。?)指令編碼格式
LDR指令用于從內(nèi)存中將一個32位的字讀取到目標(biāo)寄存器。
指令的編碼格式如圖5.3所示。

圖5.3 LDR指令編碼格式
LDR指令根據(jù)《addr_mode》所確定的地址模式將一個32位字讀取到指令中的目標(biāo)寄存器《Rd》。如果指令中的尋址方式確定的地址不是字對齊的,則讀出的數(shù)值要進(jìn)行循環(huán)右移。所移位數(shù)為尋址方式確定的地址bits[1∶0]8的倍,也就是說處理器將取到的數(shù)值作為字的最低位處理。
如果設(shè)置了L位,則進(jìn)行裝載,否則進(jìn)行存儲。
如果設(shè)置了P位,則使用預(yù)先變址尋址,否則使用過后變址尋址。
如果設(shè)置了U位,則給出的偏移量被加到基址寄存器上,否則從中減去偏移量。
如果設(shè)置了B位,傳送內(nèi)存的一個字節(jié),否則傳送一個字。這在助記符末尾添加后綴“B”,如MOV r7,r5變?yōu)镸OVB r7,r5。
W位的解釋依賴于使用的地址模式。
· 對于預(yù)先變址尋址,設(shè)置W位強(qiáng)制把它用做地址轉(zhuǎn)換的最終地址寫回基址寄存器中(例如,傳送的副作用是Rn:= Rn +/-offset。這在匯編器中表示為給指令加上后綴“!”。)。
· 對于過后變址尋址,地址總是寫回,設(shè)置 W 位指示在進(jìn)行傳送之前強(qiáng)制地址轉(zhuǎn)換。這在匯編器中表示為給指令加上后綴“T”。
當(dāng)PC作為LDR的目的寄存器《Rd》時,從存儲器取得的數(shù)據(jù)將被當(dāng)作目標(biāo)地址值,程序?qū)⑻D(zhuǎn)到目標(biāo)地址開始執(zhí)行。
(2)指令的語法格式
LDR{《cond》} 《Rd》,《addr_mode》
① 《cond》
為指令編碼中的條件域。它指示LDR指令在什么條件下執(zhí)行。當(dāng)《cond》忽略時,指令為無條件執(zhí)行(cond=AL(Alway))。
?、?《Rd》
確定使用哪個通用寄存器作為目標(biāo)寄存器。
?、?《addr_mode》
它確定了指令編碼中的I、P、U、W、Rn和《addr_mode》位。所有的尋址模式中,都會確定一個基址寄存器Rn。
Load/Store內(nèi)存訪問指令在ARM寄存器和存儲器之間傳送數(shù)據(jù)。ARM指令中有3種基本的數(shù)據(jù)傳送指令。
① 單寄存器Load/Store指令(Single Register)
這些指令在ARM寄存器和存儲器之間提供更靈活的單數(shù)據(jù)項傳送方式。數(shù)據(jù)項可以是字節(jié)、16位半字或32位字。
② 多寄存器Load/Store內(nèi)存訪問指令
這些指令的靈活性比單寄存器傳送指令差,但可以使大量的數(shù)據(jù)更有效地傳送。它們用于進(jìn)程的進(jìn)入和退出、保存和恢復(fù)工作寄存器以及拷貝存儲器中的一塊數(shù)據(jù)。
?、?單寄存器交換指令(Single Register Swap)
這些指令允許寄存器和存儲器中的數(shù)值進(jìn)行交換,在一條指令中有效地完成Load/Store操作。它們在用戶級編程中很少用到。它的主要用途是在多處理器系統(tǒng)中實現(xiàn)信號量(Semaphores)的操作,以保證不會同時訪問公用的數(shù)據(jù)結(jié)構(gòu)。
5.3.1 字?jǐn)?shù)據(jù)傳送指令
這種指令用于把單一的數(shù)據(jù)傳入或者傳出一個寄存器。支持的數(shù)據(jù)類型有字節(jié)(8位)、半字(16位)和字(32位)。
表5.1總結(jié)了所有單寄存器的Load/Store指令。
表5.1 單寄存器Load/Store指令
指 令作 用操 作
LDR把一個字裝入一個寄存器Rd←mem32[address]
STR將存儲器中的字保存到寄存器Rd→mem32[address]
LDRB把一個字節(jié)裝入一個寄存器Rd←mem8[address]
STRB將寄存器中的低8位字節(jié)保存到存儲器Rd→mem8[address]
LDRH把一個半字裝入一個寄存器Rd←mem16[address]
STRH將寄存器中的低16位半字保存到存儲器Rd→mem16[address]
LDRBT用戶模式下將一個字節(jié)裝入寄存器Rd←mem8[address] under user mode
STRBT用戶模式下將寄存器中的低8位字節(jié)保存到存儲器Rd→mem8[address] under user mode
LDRT用戶模式下把一個字裝入一個寄存器Rd←mem32[address]under user mode
STRT用戶模式下將存儲器中的字保存到寄存器Rd→mem32[address] ]under user mode
LDRSB把一個有符號字節(jié)裝入一個寄存器Rd←sign{mem8[address]}
LDRSH把一個有符號半字裝入一個寄存器Rd←sign{mem16[address]}
1.LDR指令
?。?)指令編碼格式
LDR指令用于從內(nèi)存中將一個32位的字讀取到目標(biāo)寄存器。
指令的編碼格式如圖5.3所示。

圖5.3 LDR指令編碼格式
LDR指令根據(jù)《addr_mode》所確定的地址模式將一個32位字讀取到指令中的目標(biāo)寄存器《Rd》。如果指令中的尋址方式確定的地址不是字對齊的,則讀出的數(shù)值要進(jìn)行循環(huán)右移。所移位數(shù)為尋址方式確定的地址bits[1∶0]8的倍,也就是說處理器將取到的數(shù)值作為字的最低位處理。
如果設(shè)置了L位,則進(jìn)行裝載,否則進(jìn)行存儲。
如果設(shè)置了P位,則使用預(yù)先變址尋址,否則使用過后變址尋址。
如果設(shè)置了U位,則給出的偏移量被加到基址寄存器上,否則從中減去偏移量。
如果設(shè)置了B位,傳送內(nèi)存的一個字節(jié),否則傳送一個字。這在助記符末尾添加后綴“B”,如MOV r7,r5變?yōu)镸OVB r7,r5。
W位的解釋依賴于使用的地址模式。
· 對于預(yù)先變址尋址,設(shè)置W位強(qiáng)制把它用做地址轉(zhuǎn)換的最終地址寫回基址寄存器中(例如,傳送的副作用是Rn:= Rn +/-offset。這在匯編器中表示為給指令加上后綴“!”。)。
· 對于過后變址尋址,地址總是寫回,設(shè)置 W 位指示在進(jìn)行傳送之前強(qiáng)制地址轉(zhuǎn)換。這在匯編器中表示為給指令加上后綴“T”。
當(dāng)PC作為LDR的目的寄存器《Rd》時,從存儲器取得的數(shù)據(jù)將被當(dāng)作目標(biāo)地址值,程序?qū)⑻D(zhuǎn)到目標(biāo)地址開始執(zhí)行。
(2)指令的語法格式
LDR{《cond》} 《Rd》,《addr_mode》
① 《cond》
為指令編碼中的條件域。它指示LDR指令在什么條件下執(zhí)行。當(dāng)《cond》忽略時,指令為無條件執(zhí)行(cond=AL(Alway))。
?、?《Rd》
確定使用哪個通用寄存器作為目標(biāo)寄存器。
?、?《addr_mode》
它確定了指令編碼中的I、P、U、W、Rn和《addr_mode》位。所有的尋址模式中,都會確定一個基址寄存器Rn。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- CS,IP和PC寄存器
- HELLODSP中F2812寄存器速查 14次下載
- ARM的交換指令總結(jié) 1次下載
- 淺談單寄存器數(shù)據(jù)傳送指令 1次下載
- Thumb指令集之多寄存器數(shù)據(jù)傳送指令解析 0次下載
- 數(shù)據(jù)傳送指令之程序狀態(tài)寄存器指令簡述 1次下載
- ARM指令尋址方式之內(nèi)存訪問指令尋址 1次下載
- 多寄存器Load/Store內(nèi)存訪問指令 1次下載
- 51寄存器的所有寄存器名稱,(包括寄存器每一位的作用及用法)資源詳解 14次下載
- 寄存器的使用技巧及定義 2次下載
- 基于PIT寄存器圖解 7次下載
- arm程序狀態(tài)寄存器訪問指令 0次下載
- DSP2812寄存器詳解 8次下載
- 間接尋址及地址寄存器指令
- 寄存器與移位寄存器
- PLC移位寄存器指令的工作過程 1868次閱讀
- ARM通用寄存器及狀態(tài)寄存器詳解 7288次閱讀
- PLC移位寄存器指令應(yīng)用舉例 3657次閱讀
- PLC移位寄存器指令的工作原理 6124次閱讀
- 寄存器與內(nèi)存的區(qū)別 1w次閱讀
- 移位寄存器的原理 7.5w次閱讀
- 技術(shù) | FANUC數(shù)據(jù)寄存器和位置寄存器的運用介紹 1.7w次閱讀
- 工業(yè)機(jī)器人FANUC數(shù)據(jù)位置寄存器和位置寄存器的運用小知識分享 3.3w次閱讀
- CPU寄存器詳解 1.1w次閱讀
- 寄存器操作方法_對寄存器操作的通用方法總結(jié) 2.3w次閱讀
- 逆向基礎(chǔ)之寄存器和內(nèi)存詳解 2998次閱讀
- 移位寄存器怎么用_如何使用移位寄存器_移位寄存器的用途 2w次閱讀
- plc移位寄存器指令的應(yīng)用 1.9w次閱讀
- 西門子plc移位寄存器指令 5.1w次閱讀
- 寄存器傳輸語言詳解 6268次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費
- 2AN158 GD32VW553 Wi-Fi開發(fā)指南
- 1.51MB | 2次下載 | 免費
- 3AN148 GD32VW553射頻硬件開發(fā)指南
- 2.07MB | 1次下載 | 免費
- 4AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費
- 5AN153-用于電源系統(tǒng)管理的Linduino
- 1.38MB | 次下載 | 免費
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費
- 7SM2018E 支持可控硅調(diào)光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費
- 8AN-1308: 電流檢測放大器共模階躍響應(yīng)
- 545.42KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 130次下載 | 免費
- 4使用單片機(jī)實現(xiàn)七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 53314A函數(shù)發(fā)生器維修手冊
- 16.30 MB | 31次下載 | 免費
- 6美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 17次下載 | 免費
- 8感應(yīng)筆電路圖
- 0.06 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論