數據傳送指令之:?jiǎn)渭拇嫫鞯腖oad/Store指令
5.3.2 字節數據傳送指令(LDRB/STRB)
1.LDRB指令
(1)指令編碼格式
LDRB指令根據addr_mode>所確定的地址模式將一個(gè)8位字節讀取到指令中的目標寄存器Rd>。
指令的編碼格式如圖5.5所示。
圖5.5 LDRB指令編碼格式
注意 | LDRB指令加載一個(gè)內存地址的8位字節到一個(gè)通用寄存器中。寄存器的高位數據補0。 |
(2)指令的語(yǔ)法格式
LDR{cond>}B Rd>,addr_mode>
① cond>
為指令編碼中的條件域。它指示LDRB指令在什么條件下執行。當cond>忽略時(shí),指令為無(wú)條件執行(cond=AL(Alway))。
② Rd>
確定使用哪個(gè)通用寄存器作為目標寄存器。
③ addr_mode>
它確定了指令編碼中的I、P、U、W、Rn和addr_mode>位。所有的尋址模式中,都會(huì )確定一個(gè)基址寄存器Rn。
(3)指令操作的偽代碼
if ConditionPassed{cond} then
Rd = Memory[address,1]
注意 | 當PC作為位基地址出現在指令中時(shí),指令中將會(huì )使用PC相關(guān)地址,使用這種方法可以編寫(xiě)自己的位置無(wú)關(guān)(position-independ)指令。 |
2.STRB指令
(1)指令編碼格式
STRB指令從寄存器中取出指定的8位字節放入寄存器的低8位,并將寄存器的高位補0。
指令的編碼格式如圖5.6所示。
圖5.6 STRB指令編碼格式
(2)指令的語(yǔ)法格式
STR{cond>}B Rd>,addr_mode>
① cond>
為指令編碼中的條件域。它指示STRB指令在什么條件下執行。當cond>忽略時(shí),指令為無(wú)條件執行(cond=AL(Alway))。
② Rd>
確定使用哪個(gè)通用寄存器作為目標寄存器。
注意 | 當PC作為目標寄存器Rd>出現在指令中時(shí),指令的執行結果不可預知。 |
③ addr_mode>
它確定了指令編碼中的I、P、U、W、Rn和addr_mode>位。所有的尋址模式中,都會(huì )確定一個(gè)基址寄存器Rn。
存儲器相關(guān)文章:存儲器原理
評論