劉帥嵌入式系統 LDRH半位元組資料讀取指令

2021-09-23 10:47:52 字數 802 閱讀 3845

ldrh指令用於從記憶體中將乙個16位的半位元組資料讀取到指令中的目標暫存器中。並將暫存器的高16位清零。如果指令中的記憶體位址不是半字對齊的,指令會產生不可預知的結果。

其中:

if

conditionpassed

(cond) then

if address[0]

==0data = memory[address,2]

else

/* address[0] == 1*/

data = unpredictable

rd = data

ldrh指令通常的用法有以下兩種:

ldrh r0, [r1]		;將記憶體單元r1中的半字資料讀取到r0中,r0中高16位設定成0

ldrh r0, [r1,#2] ;將記憶體單元r1+2中的半字資料讀取到r0中,r0中高16位設定成0

ldrh r0, [r1,r2] ;將記憶體單元r1+r2中的半字資料讀取到r0中,r0中高16位設定成0

ldrh r0, [r1],#2 ;將記憶體單元r1中的半字資料讀取到r0中,r0中高16位設定成0,r1=r1+2

劉帥嵌入式系統 乘法指令

arm有兩類乘法指令 一類為32位的乘法指令,即乘法操作的結果為32位 另一類為64位的乘法指令,即乘法操作的結果為64位。兩類指令共有以下6條。mul指令實現兩個32位的數 可以為無符號,也可以為有符號 的乘積,並將結果存放到乙個32位的暫存器中,同時可以根據運算結果設定cpsr暫存器中相應的條件...

劉帥嵌入式系統 UMLAL指令

umlal指令實現兩個32位的無符號數的64位乘積結果與 rdhi 和 rdlo 中的64位無符號數相加,加法結果的高32位存放到乙個32位暫存器中,乘積結果的低32位存放到另乙個32位的暫存器 rdlo 中,同時可以根據運算結果設定cpsr暫存器中相應的條件標誌位。其中 if conditionp...

劉帥嵌入式系統 MSR指令

msr指令用於將通用暫存器的內容或乙個立即數傳送到狀態暫存器中。指令的源運算元為通用暫存器時,指令編碼格式如下 指令的源運算元為立即數時,指令編碼格式如下 其中 if conditionpassed cond then if opcode 25 1operand 8 bit immediate ro...