新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 常用 ARM指令集及匯編

常用 ARM指令集及匯編

作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
一、 ARM處理器的尋址方式

二、指令集學(xué)習(xí)

本文引用地址:http://butianyuan.cn/article/201611/317553.htm

(一) ARM 指令集

1. 指令格式

2. 條件碼

3. ARM 存儲器訪問指令

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

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

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

4. ARM 數(shù)據(jù)處理指令

1) 數(shù)據(jù)傳送指令

a) MOV -數(shù)據(jù)傳送指令

b) MVN -數(shù)據(jù)非傳送指令

2) 算術(shù)邏輯運算指令

a) ADD -加法運算指令

b) SUB -減法運算指令

c) RSB- 逆向減法指令

d) ADC -帶進(jìn)位加法指令

e) SBC -帶進(jìn)位減法指令

f) RSC -帶進(jìn)位逆向減法指令

g) AND -邏輯“與”

h) ORR -邏輯“或”

i) EOR -邏輯“異或

j) BIC -位清除指令

3) 比較指令

a) CMP -比較指令

b) CMN -負(fù)數(shù)比較指令

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 -帶狀態(tài)切換的分支指令

6. ARM 協(xié)處理器指令

1) CDP -協(xié)處理器數(shù)據(jù)操作指令

2) LDC -協(xié)處理器數(shù)據(jù)讀取指令

3) STC -協(xié)處理器數(shù)據(jù)寫入指令

4) MCR - ARM處理器到協(xié)處理器的數(shù)據(jù)傳送指令

5) MRC -協(xié)處理器到 ARM處理器的數(shù)據(jù)傳送指令

7. ARM 雜項指令

1) SWI -軟中斷指令

2) MRS -讀狀態(tài)寄存器指令

3) MSR -寫狀態(tài)寄存器指令

8. ARM 偽指令

1) ADR -小范圍的地址讀取偽指令

2) ADRL -中等范圍的地址讀取偽指令

3) LDR -大范圍的地址讀取偽指令

4) NOP -空操作偽指令

(二) Thumb 指令集

1. Thumb 指令集和 ARM指令集的區(qū)別

2. Thumb 存儲器訪問指令

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

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

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

3. Thumb 數(shù)據(jù)處理指令

1) 數(shù)據(jù)傳送指令

a) MOV -數(shù)據(jù)傳送指令

b) MVN -數(shù)據(jù)非傳送指令

c) NEG -數(shù)據(jù)取負(fù)指令

2) 算術(shù)邏輯運算指令

a) ADD -加法運算指令

b) SUB -減法運算指令

c) ADC -帶進(jìn)位加法指令

d) SBC -帶進(jìn)位減法指令

e) MUL -乘法運算指令

f) AND -邏輯“與”

g) ORR -邏輯“或”

h) EOR -邏輯“異或”

i) BIC -位清除指令

j) ASR -算術(shù)右移指令

k) LSL -邏輯左移指令

l) LSR -邏輯右移指令

m) ROR -循環(huán)右移指令

3) 比較指令

a) CMP -比較指令

b) CMN -負(fù)數(shù)比較指令

c) TST -位測試指令

4. Thumb 分支指令

1) B -分支指令

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

3) BX -帶狀態(tài)切換的分支指令

5. Thumb 雜項指令

1) SWI -軟中斷指令

6. Thumb 偽指令

1) ADR -小范圍的地址讀取偽指令

2) LDR -大范圍的地址讀取偽指令

3) NOP -空操作偽指令



關(guān)鍵詞: ARM指令集匯

評論


技術(shù)專區(qū)

關(guān)閉