日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编指令的学习2——常用的ARM指令

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编指令的学习2——常用的ARM指令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、常用ARM指令1:數據處理指令

(1)數據傳輸指令 ?

mov

mvn(源目標按位取反后賦給目標)

(2)算術指令

add sub

rsb adc sbc rsc?

(3)邏輯指令

and orr eor ? ??

bic(位清除指令)bic r0,r1,#0x1f @將r1中的數的bit0~bit4清零后,賦給r0。

(4)比較指令(用來比較兩個寄存器中的數,不加S后綴就可以影響CPSR中的標志位)

cmp cmn tst teq

cmp r0,r1@相當于sub r2, r0, r1

cmn r0,r1@相當于add r0,r1(是否-1,1這種類型?)

tst r0,#0xf@測試bit0~bit3是否為0

(5)乘法指令

mvl mla umull umlal smull smlal

(6)前導零計數clz


二、常用ARM指令2:cpsr訪問指令 ? mrs & msr

(1)mrs用來讀psr,msr用來寫psr

(2)CPSR寄存器比較特殊,需要專門的指令訪問,這就是mrs和msr。


三、常用ARM指令3:跳轉(分支)指令 ?b & bl & bx

(1)b 直接跳轉(就沒打開算返回);

(2)bl branch and link,跳轉前把返回地址放入lr中,以便返回,以便用于函數調用;

(3)bx跳轉同時切換到ARM模式,一般用于異常處理的跳轉。


四、常用ARM指令4:訪存指令 ?ldr/str & ldm/stm & swp

(1)單個字/半字/字節訪問 ldr/str

(2)多字批量訪問 ?ldm/stm

(3)swp r1, r2, [r0] @[r0]寫到r1,r2寫到[r0]

(4)swp r1, r1, [r0]


五、ARM匯編中的立即數

(1)合法立即數與非法立即數

ARM指令都是32位,除了指令標記和操作標記外,本身只能附帶很少位數的立即數。因此立即數有合法和非法之分。

合法立即數:經過任意位數的移位后非零部分可以用8位表示的即為合法立即數。

ldr偽指令可以不用人為去判斷合法(非合法)立即數。


六、常用ARM指令5:軟中斷指令swi(software interrupt)

軟中斷指令用來實現操作系統中系統調用




總結

以上是生活随笔為你收集整理的汇编指令的学习2——常用的ARM指令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。