新聞中心

常用ARM指令集及匯編

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

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

本文引用地址:http://m.butianyuan.cn/article/201611/318760.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ù)邏輯運(yùn)算指令

a)ADD-加法運(yùn)算指令

b)SUB-減法運(yùn)算指令

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雜項(xiàng)指令

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ù)邏輯運(yùn)算指令

a)ADD-加法運(yùn)算指令

b)SUB-減法運(yùn)算指令

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

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

e)MUL-乘法運(yùn)算指令

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雜項(xiàng)指令

1)SWI-軟中斷指令

6.Thumb偽指令

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

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

3)NOP-空操作偽指令

7。匯編指令API

MOV(MOVe) 傳送指令
PUSH 入棧指令
POP 出棧指令
XCHG(eXCHanG) 交換指令
XLAT(TRANSLATE) 換碼指令
LEA (Load Effective Address) 有效地址送寄存器指令
LDS(Load DS with pointer) 指針?biāo)图拇嫫骱虳S指令
LES(Load ES with pointer) 指針?biāo)图拇嫫骱虴S指令
LAHF(Load AH with Flags) 標(biāo)志位送AH指令
SAHF(Store AH into Flgs) AH送標(biāo)志寄存器指令
PUSHF(PUSH the Flags) 標(biāo)志進(jìn)棧指令
POPF(POP the Flags) 標(biāo)志出棧指令
ADD 加法指令
ADC 帶進(jìn)位加法指令
INC 加1指令
SUB(SUBtract) 不帶借位的減法指令
SBB(SuVtrach with borrow) 帶借位的減法指令
DEC(DECrement) 減1指領(lǐng)
NEG(NEGate) 求補(bǔ)指令
CMP(CoMPare) 比較指令
MUL(unsinged MULtiple) 無符號數(shù)乘法指令
IMUL(sIgned MUL tiple) 有符號數(shù)乘法指令
DIV(unsigned DIVide) 無符號數(shù)除法指令
IDIV(sIgned DIVide) 有符號數(shù)除法指令
CBW(Count Byte to Word) 字節(jié)轉(zhuǎn)換為字指令
CWD(Count Word to Doble word) 字轉(zhuǎn)換為雙字指令
DAA 壓縮的BCD碼加法十進(jìn)制調(diào)整指令
DAS 壓縮的BCD碼減法十進(jìn)制調(diào)整指令
AAA 非壓縮的BCD碼加法十進(jìn)制調(diào)整指令
AAS 非壓縮的BCD碼加法十進(jìn)制調(diào)整指令
AND 邏輯與指令
OR 邏輯或指令
XOR 邏輯異或指令
NOT 邏輯非指令
TEST 測試指令
SHL(SHift logical Letf) 邏輯左移指令
SHR(SHift logical Right) 邏輯右移指令
ROL(Rotate Left ) 循環(huán)左移指令P58
ROR(Rotate Right) 循環(huán)右移指令P58
RCL(Rotate Left through Carry) 帶進(jìn)位循環(huán)左移
RCR(Rotate Right through Carry) 帶進(jìn)位循環(huán)左移
MOVS(MOVe String) 串傳送指令
STOS(STOre into String) 存入串指令
LODS(LOad from string) 從串取指令
REP(REPeat) 重復(fù)操作前
CLD(CLear Direction flag) 清除方向標(biāo)志指令
STD(SeT Direction flag) 設(shè)置方向標(biāo)志指令
CMPS(CoMPare String) 串比較指令
SCAS(SCAn String) 串掃描指令
REPE/REPZ(REPeat while Equal/Zero)相等/為零時重復(fù)操作前綴
REPNE/REPNZ(REPeat while Not Equal/Zero)不相等/不為零進(jìn)重復(fù)前綴
IN(INput) 輸入指令
OUT(OUTput) 輸出指令
JMP(JuMP) 無條件轉(zhuǎn)移指令
JZ,JNZ,JS,JNS,JO,JNO,JP,JNP,JB,JNB,JBE,JNBE,JL,JNL,JLE,JNLE,JCXZ 條件轉(zhuǎn)移指令
LOOP 循環(huán)指令P70
LOOPZ/LOOPE 為零/相等時循環(huán)指令
LOOPNZ/LOOPNE 不為零/不相等時循環(huán)指令
CALL 子程序調(diào)用指令
RET(RETun) 子程序返回指令
CLC(CLear Carry) 進(jìn)位位置0指令
CMC(CoMplement Carry) 進(jìn)位位求反指令
SRC(SeT Carry) 進(jìn)位位置1指令
NOP(No OPeretion) 無操作指令
HLT(HaLT) 停機(jī)指令
OFFSET 返回偏移地址
SEG 返回段地址
EQU(=) 等值語句
PURGE 解除語句
DUP 操作數(shù)字段用操作符
SEGMENT,ENDS 段定義指令
ASSUME 段地址分配指令
ORG 起始偏移地址設(shè)置指令
$ 地址計(jì)數(shù)器的當(dāng)前值
PROC,ENDP 過程定義語句
NAME,TITLE,END 程序開始結(jié)束語句
MACRO,ENDM 宏定義指令

JZ OPR //結(jié)果為零轉(zhuǎn)移
JNZ OPR //結(jié)果不為零轉(zhuǎn)移
JS OPR //結(jié)果為負(fù)轉(zhuǎn)移
JNS OPR //結(jié)果為正轉(zhuǎn)移
JO OPR //溢出轉(zhuǎn)移
JNO OPR //不溢出轉(zhuǎn)移
JP OPR //結(jié)果為偶轉(zhuǎn)移
JNP OPR //結(jié)果為奇轉(zhuǎn)移
JC OPR //有進(jìn)位轉(zhuǎn)移
JNC OPR //無進(jìn)位轉(zhuǎn)移


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

評論


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

關(guān)閉