新闻中心

EEPW首页>嵌入式系统>设计应用> arm汇编adrl以及ldr与adr的区别

arm汇编adrl以及ldr与adr的区别

作者: 时间:2016-11-20 来源:网络 收藏
看《嵌入式linux应用开发》第六章实例中看到个句:

adrlr2,men_cfg_val

本文引用地址://m.amcfsurvey.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

评论


技术专区

关闭