常用ARM指令总结(未完待续)
ARM指令集介紹
7種工作模式,2種工作狀態(tài)
ARM指令的種類,共有7類指令,可以完成存儲器訪問,數(shù)據(jù)運(yùn)算,程序跳轉(zhuǎn),處理器控制,以及幫助編程的偽指令等。
數(shù)據(jù)處理指令大致分為三類:
a.數(shù)據(jù)傳送指令
b.算數(shù)邏輯運(yùn)算指令
c.比較指令
數(shù)據(jù)處理指令只能對寄存器的內(nèi)容進(jìn)行操作,而不能對內(nèi)存中的數(shù)據(jù)進(jìn)行操作。所有的ARM數(shù)據(jù)處理指令均可以選擇使用S后綴,并影響狀態(tài)標(biāo)志。
數(shù)據(jù)傳送指令
MOV 指令可將8位圖立即數(shù)或寄存器傳送到目標(biāo)寄存器,可用移位運(yùn)算等操作
同類型的指令還有MVN,它可以實(shí)現(xiàn)數(shù)據(jù)的 非傳遞 ,即把操作數(shù)取反后送至目標(biāo)寄存器
MOV指令與LDR指令都是往目標(biāo)寄存器中傳送數(shù)據(jù),但是它們有什么區(qū)別嗎?
MOV指令用于將數(shù)據(jù)從一個(gè)寄存器傳送到另一個(gè)寄存器中,或者將一個(gè)常數(shù)傳送到一個(gè)寄存器中,但是不能訪問內(nèi)存。LDR指令用于從內(nèi)存在洪讀取數(shù)據(jù)放入寄存器中。
算術(shù)邏輯指令
部分算數(shù)運(yùn)算符
ADD 加法運(yùn)算
ADC 帶進(jìn)位的加法運(yùn)算
SUB 減法運(yùn)算
RSB 逆向減法運(yùn)算
SBC 帶進(jìn)位的減法運(yùn)算
RSC 帶進(jìn)位逆向減法運(yùn)算
部分邏輯運(yùn)算符
AND 邏輯與運(yùn)算
ORR 邏輯或運(yùn)算
EOR 邏輯異或運(yùn)算
BIC 位清除運(yùn)算
比較運(yùn)算符:
CMP: 數(shù)值比較
CMN: 負(fù)數(shù)比較
TST: 位測試
TEQ: 相等測試
乘法指令:
32 * 32 位乘法指令; MUL
32 * 32 位乘加指令; MLA
32 * 32 位結(jié)果為64位的乘/乘加指令。
MUL R3,R2,R1 ;
R3=R1 * R2
MLA R3,R2,R1,R0 ;
R3=R2 *R1 +R0
跳轉(zhuǎn)指令:
B: 分支指令
BL :帶鏈接的分支指令
BX:帶狀態(tài)切換的分支指令
ARM偽指令有四條
a.小范圍地址讀取指令:ADR
b.中等范圍地址讀取指令:ADRL
c.大等范圍地址讀取指令:LDR
d.空操作指令:NOP
地址表達(dá)式
總結(jié)
以上是生活随笔為你收集整理的常用ARM指令总结(未完待续)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ARM处理器寻址方式 之 堆栈寻址
- 下一篇: 链表操作总结