ARM指令 LDR 和 ADR的一些区别
来源:互联网 发布:求质数的算法C语言 编辑:程序博客网 时间:2024/05/29 16:54
LDR 是ARM中的指令,也是伪指令。
当用 LDR r, =imd // r 为寄存器, imd为立即数
LDR 是一条伪指令。编译器会根据 立即数的大小,决定用 ldr 指令或者是mov或mvn指令。
当imd能用mov或者mvn操作时,就将它翻译成一条mov或mvn指令。当imd大于mov或mvn能够操作的数时,编译器会将imd存在一个内存单元中,然后再用一条ldr指令加载这个内存单元的的值到寄存器中。
LDR r, label 和 LDR r, =label的区别:
LDR r, =label 会把label表示的值加载到寄存器中,而LDR r, label会把label当做地址,把label指向的地址中的值加载到寄存器中。
譬如 label的值是 0x8000, LDR r, =label会将 0x8000加载到寄存器中,而LDR r, label则会将内存0x8000处的值加载到寄存器中。
ADR 和 ADRL 伪指令:
ADR 和 ADRL 伪指令用于将一个地址加载到寄存器中。
ADR为小范围的地址读取伪指令。ADR指令将基于PC相对偏移的地址值读取到寄存器中。在汇编编译源程序时,ADR伪指令被编译器替换在一条合适的指令,通常,编译器用一条ADD指令或SUB指令来实现该ADR伪指令的功能,若不能使用一条指令实现,则产生错误。其能加载的地址范围,当为字节对齐时,是-1020~1020,当为非字对齐时在-255~255之间。
ADRL是中等范围的地址读取指令。会被编译器翻译成两条指令。如果不能用两条指令表示,则产生错误。
ADRL能加载的地址范围当为非字节对齐时是-64K~64K之间;当为字节对齐时是-256K~256K之间。
- ARM指令 LDR 和 ADR的一些区别
- ARM指令 LDR 和 ADR的一些区别
- ARM指令 LDR 和 ADR的一些区别
- arm汇编指令之LDR 和 ADR的一些区别
- ARM指令ldr和adr的区别
- [ARM]ldr 和 adr 伪指令的区别
- [ARM]ldr 和 adr 伪指令的区别
- [ARM]ldr和 adr/adrl 伪指令的区别
- [ARM]ldr和 adr/adrl 伪指令的区别
- [ARM]ldr和 adr/adrl 伪指令的区别
- [ARM]ldr和 adr/adrl 伪指令的区别
- 伪指令ADR和LDR的区别
- 伪指令ADR和LDR的区别
- ARM汇编指令:adr和ldr的前因后果
- ARM指令ADR和LDR浅析
- ARM中的ldr指令与adr、ldr伪指令之间的区别
- ARM汇编中LDR和ADR的区别
- ARM汇编中的ldr和adr的区别
- 正规科技类、学术类、经济类期刊发表论文(谨防假冒)
- LPC1788 @120MHZ
- C++第11周项目4 - 点类、圆类、圆柱类
- redhat linux svn server 搭建过程
- <a 标签 href onclick 使用 confirm 消除浏览器
- ARM指令 LDR 和 ADR的一些区别
- Cocos2d开发(questions)之cocos2d在ios5.1显示正常和ios6.1.2不正常
- FLEX4 Tree代码触发节点选择
- Android uses-permission 配置详解
- Android图像处理之Bitmap类
- 线程与fork(2) (进程):把它们一起使用前,请谨慎考虑 (翻译)
- Spring的WebServiceTemplate访问WebService的方法及其本质原理
- 阅读量:微博的一小步,营销的一大步
- DirectShow--用GraphEdit辅助调试