arm汇编adrl以及ldr与adr的区别
时间:11-20
来源:互联网
点击:
看《嵌入式linux应用开发》第六章实例中看到个句:
adrl r2,men_cfg_val
最初对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 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)