<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

常用ARM指令集及匯編

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

二、指令集學(xué)習

本文引用地址:http://dyxdggzs.com/article/201611/318760.htm

(一)ARM指令集

1.指令格式

2.條件碼

3.ARM存儲器訪(fǎng)問(wèn)指令

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

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

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

4.ARM數據處理指令

1)數據傳送指令

a)MOV-數據傳送指令

b)MVN-數據非傳送指令

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-負數比較指令

c)TST-位測試指令

d)TEQ-相等測試指令

4)乘法指令

a)MUL-32位乘法指令

b)MLA-32位乘加指令

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

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

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

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

5.ARM分支指令

1)B-分支指令

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

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

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

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

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

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

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

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

7.ARM雜項指令

1)SWI-軟中斷指令

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

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

8.ARM偽指令

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

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

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

4)NOP-空操作偽指令

(二)Thumb指令集

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

2.Thumb存儲器訪(fǎng)問(wèn)指令

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

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

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

3.Thumb數據處理指令

1)數據傳送指令

a)MOV-數據傳送指令

b)MVN-數據非傳送指令

c)NEG-數據取負指令

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-負數比較指令

c)TST-位測試指令

4.Thumb分支指令

1)B-分支指令

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

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

5.Thumb雜項指令

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) 指針送寄存器和DS指令
LES(Load ES with pointer) 指針送寄存器和ES指令
LAHF(Load AH with Flags) 標志位送AH指令
SAHF(Store AH into Flgs) AH送標志寄存器指令
PUSHF(PUSH the Flags) 標志進(jìn)棧指令
POPF(POP the Flags) 標志出棧指令
ADD 加法指令
ADC 帶進(jìn)位加法指令
INC 加1指令
SUB(SUBtract) 不帶借位的減法指令
SBB(SuVtrach with borrow) 帶借位的減法指令
DEC(DECrement) 減1指領(lǐng)
NEG(NEGate) 求補指令
CMP(CoMPare) 比較指令
MUL(unsinged MULtiple) 無(wú)符號數乘法指令
IMUL(sIgned MUL tiple) 有符號數乘法指令
DIV(unsigned DIVide) 無(wú)符號數除法指令
IDIV(sIgned DIVide) 有符號數除法指令
CBW(Count Byte to Word) 字節轉換為字指令
CWD(Count Word to Doble word) 字轉換為雙字指令
DAA 壓縮的BCD碼加法十進(jìn)制調整指令
DAS 壓縮的BCD碼減法十進(jìn)制調整指令
AAA 非壓縮的BCD碼加法十進(jìn)制調整指令
AAS 非壓縮的BCD碼加法十進(jìn)制調整指令
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) 重復操作前
CLD(CLear Direction flag) 清除方向標志指令
STD(SeT Direction flag) 設置方向標志指令
CMPS(CoMPare String) 串比較指令
SCAS(SCAn String) 串掃描指令
REPE/REPZ(REPeat while Equal/Zero)相等/為零時(shí)重復操作前綴
REPNE/REPNZ(REPeat while Not Equal/Zero)不相等/不為零進(jìn)重復前綴
IN(INput) 輸入指令
OUT(OUTput) 輸出指令
JMP(JuMP) 無(wú)條件轉移指令
JZ,JNZ,JS,JNS,JO,JNO,JP,JNP,JB,JNB,JBE,JNBE,JL,JNL,JLE,JNLE,JCXZ 條件轉移指令
LOOP 循環(huán)指令P70
LOOPZ/LOOPE 為零/相等時(shí)循環(huán)指令
LOOPNZ/LOOPNE 不為零/不相等時(shí)循環(huán)指令
CALL 子程序調用指令
RET(RETun) 子程序返回指令
CLC(CLear Carry) 進(jìn)位位置0指令
CMC(CoMplement Carry) 進(jìn)位位求反指令
SRC(SeT Carry) 進(jìn)位位置1指令
NOP(No OPeretion) 無(wú)操作指令
HLT(HaLT) 停機指令
OFFSET 返回偏移地址
SEG 返回段地址
EQU(=) 等值語(yǔ)句
PURGE 解除語(yǔ)句
DUP 操作數字段用操作符
SEGMENT,ENDS 段定義指令
ASSUME 段地址分配指令
ORG 起始偏移地址設置指令
$ 地址計數器的當前值
PROC,ENDP 過(guò)程定義語(yǔ)句
NAME,TITLE,END 程序開(kāi)始結束語(yǔ)句
MACRO,ENDM 宏定義指令

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


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

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>