常用 ARM指令集及彙編

一、 ARM處理器的尋址方式

二、指令集學習

(一)    ARM 指令集

1.  指令格式

2.  條件碼

3. ARM 存儲器訪問指令

1)       LDR/ STR -加載 /存儲指令

2)       LDM/ STM -多寄存器加載 /存儲指令

3)       SWP -寄存器和存儲器交換指令

4. ARM 數據處理指令

1)       數據傳送指令

a)       MOV -數據傳送指令

b)       MVN -數據非傳送指令

2)       算術邏輯運算指令

a)       ADD -加法運算指令

b)       SUB -減法運算指令

c)       RSB- 逆向減法指令

d)       ADC -帶進位加法指令

e)       SBC -帶進位減法指令

f)       RSC -帶進位逆向減法指令

g)       AND -邏輯“與”

h)       ORR -邏輯“或”

i)       EOR -邏輯“異或”

j)       BIC -位清除指令

3)       比較指令

a)       CMP -比較指令

b)       CMN -負數比較指令

c)       TST -位測試指令

d)       TEQ -相等測試指令

4)       乘法指令

a)       MUL - 32位乘法指令

b)       MLA - 32位乘加指令

c)       UMULL - 64位無符號乘法指令

d)       UMLAL - 64位無符號乘加指令

e)       SMULL - 64位有符號乘法指令

f)       SMLAL - 64位有符號乘加指令

5. ARM 分支指令

1)       B -分支指令

2)       BL -帶連接的分支指令

3)       BX -帶狀態切換的分支指令

6. ARM 協處理器指令

1)       CDP -協處理器數據操作指令

2)       LDC -協處理器數據讀取指令

3)       STC -協處理器數據寫入指令

4)       MCR - ARM處理器到協處理器的數據傳送指令

5)       MRC -協處理器到 ARM處理器的數據傳送指令

7. ARM 雜項指令

1)       SWI -軟中斷指令

2)       MRS -讀狀態寄存器指令

3)       MSR -寫狀態寄存器指令

8. ARM 僞指令

1)       ADR -小範圍的地址讀取僞指令

2)       ADRL -中等範圍的地址讀取僞指令

3)       LDR -大範圍的地址讀取僞指令

4)       NOP -空操作僞指令

(二)    Thumb 指令集

1.  Thumb 指令集和 ARM指令集的區別

2. Thumb 存儲器訪問指令

1)       LDR/ STR -加載 /存儲指令

2)       PUSH/ POP -寄存器入棧 /出棧指令

3)       LDMIA/ STMIA -多寄存器加載 /存儲指令

3. Thumb 數據處理指令

1)       數據傳送指令

a)       MOV -數據傳送指令

b)       MVN -數據非傳送指令

c)       NEG -數據取負指令

2)       算術邏輯運算指令

a)       ADD -加法運算指令

b)       SUB -減法運算指令

c)       ADC -帶進位加法指令

d)       SBC -帶進位減法指令

e)       MUL -乘法運算指令

f)       AND -邏輯“與”

g)       ORR -邏輯“或”

h)       EOR -邏輯“異或”

i)       BIC -位清除指令

j)       ASR -算術右移指令

k)       LSL -邏輯左移指令

l)       LSR -邏輯右移指令

m)       ROR -循環右移指令

3)       比較指令

a)       CMP -比較指令

b)       CMN -負數比較指令

c)       TST -位測試指令

4. Thumb 分支指令

1)       B -分支指令

2)       BL -帶連接的分支指令

3)       BX -帶狀態切換的分支指令

5. Thumb 雜項指令

1)       SWI -軟中斷指令

6. Thumb 僞指令

1)       ADR -小範圍的地址讀取僞指令

2)       LDR -大範圍的地址讀取僞指令

3)       NOP -空操作僞指令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章