久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > arm匯編adrl以及ldr與adr的區別

arm匯編adrl以及ldr與adr的區別

作者: 時間:2016-11-20 來源:網絡 收藏
看《嵌入式linux應用開發》第六章實例中看到個句:

adrl r2,men_cfg_val

本文引用地址:http://cqxgywz.com/article/201611/318775.htm

最初對adr1相當不解,后來發現,那個不是數字1,而是字母l(認真看頭部,有點區別的)

這里記錄下ADRL的用法:

功能:將相對于程序或相對于寄存器的地址載入寄存器中。與ADR指令相似。ADRL生成兩個數據處理指令,因此它比ADR加載的地址范圍要寬。

語法
ADRL{cond} Rd,label

其中:

cond:是一個可選的條件代碼。Rd:是要加載的寄存器。label:是相對于程序或寄存器的表達式。
上面給出的范圍是相對于位于當前指令地址后的、距離當前指令四個字節(在 Thumb 代碼中)或兩個字(在 ARM 代碼中)遠的點而言的。如果對齊為 16 字節,或與此點的相關性更高,則遠程地址的范圍可更大。

查看ADRL的同時,看到篇講述ldr與adr的區別的博文,感覺寫的很好,摘錄下來。

http://coon.blogbus.com/logs/2738861.html

看此文最大的收獲不在于說懂了這幾個命令的用法,關鍵卻在于反匯編的運用,有反匯編看出不同用法的具體差別。

注:反匯編用arm—linux_objdump就可以實現了。




關鍵詞: arm匯編adrlldrad

評論


技術專區

關閉