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