數據傳送指令之:?jiǎn)渭拇嫫鞯腖oad/Store指令
5.3.6 有符號的字節/半字數據傳送指令(LDRBT/STRBT)
1.LDRSB指令
(1)指令編碼格式
LDRSB指令根據addr_mode>所確定的地址模式將一個(gè)8位字節讀取到指令中的目標寄存器Rd>。
注意 | LDRSB與LDRB指令的不同之處在于它將寄存器的高24位設置成該字節數據的符號位的值(即將該8位字節數據進(jìn)行符號位擴展,生成32位字數據)。 |
指令的編碼格式如圖5.13所示。
圖5.13 LDRSB指令編碼格式
(2)指令的語(yǔ)法格式
LDR{cond>}SB Rd>,addr_mode>
① cond>
為指令編碼中的條件域。它指示LDRSB指令在什么條件下執行。當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
data=Memory[address,1]
Rd=SignExtend{data}
2.LDRSH指令
(1)指令編碼格式
LDRSH指令根據addr_mode>所確定的地址模式將一個(gè)16位半字讀取到指令中的目標寄存器Rd>。
注意 | LDRSH與LDRH指令的不同之處在于它將寄存器的高16位設置成該字節數據的符號位的值(即將該16位字節數據進(jìn)行符號位擴展,生成32位字數據)。 |
指令的編碼格式如圖5.14所示。
圖5.14 LDRSH指令編碼格式
(2)指令的語(yǔ)法格式
LDR{cond>}SH Rd>,addr_mode>
① cond>
為指令編碼中的條件域。它指示LDRSH指令在什么條件下執行。當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
if address[0]==0
data=Memory[address,2]
else /*address[0] ==1*/
data=UNPREDICTABLE
Rd=SignExtend{data}
存儲器相關(guān)文章:存儲器原理
評論