ARM中关于绝对寻址相对寻址LDR,ADR的理解
来源:互联网 发布:数控编程教学视频 编辑:程序博客网 时间:2024/05/23 19:53
LDR:是与位置有关的,是个绝对寻址,其后的地址值是在程序编译的时候就确定位置了.
例如当程序在内部stepping stone中执行时候,如果使用ldr pc, =copy_proc_beg ,则程序就是把copy_proc_beg的绝对地址,即在编译时候确定的地址0x30000000加上偏移量的地址付给pc,实现跳转。
其中,ldr伪指令的实际寻址空间是32位的
ADR:ADR是基于PC或者寄存器的,相对寻址,所以此条指令是读到的是基于此时指令执行时PC地址+或者-偏移量的地址,所以是与位置无关的,无论在哪执行,读到的地址都是基于PC的偏移量。
例如 start MOV r0,#10
ADR r4,start 编译的时候替换成SUB r4,pc,#0xc ,因为当前的pc值为此条指令+8 ,所以-0xc
但是adr的寻址空间只有前后4kb,而且必须在同一个代码段中
0 0
- ARM中关于绝对寻址相对寻址LDR,ADR的理解
- ARM中关于绝对寻址相对寻址LDR,ADR的理解
- ARM中关于绝对寻址相对寻址LDR,ADR的理解
- ARM的几个地址概念以及adr,ldr寻址
- ldr与adr指令、相对地址与绝对地址的理解
- ldr与adr指令、相对地址与绝对地址的理解
- 关于adr和ldr指令的理解
- 关于ldr和adr的理解
- 关于寻址空间的理解
- ARM字寻址理解
- ARM字寻址理解
- web界面中的相对寻址VS绝对寻址
- 关于按字寻址和按字节寻址的理解
- 关于按字寻址和按字节寻址的理解
- 关于按字寻址和按字节寻址的理解
- ARM汇编中ldr与adr的区别
- ARM汇编中ldr与adr的区别
- ARM汇编中ldr与adr的区别
- 苹果vs谷歌:与微软的战争教会了苹果什么
- JAVA多线程和并发基础面试问答(转载)
- 2015 Changchun F
- spring数据源配置
- LeetCode -- Container With Most Water
- ARM中关于绝对寻址相对寻址LDR,ADR的理解
- LeetCode -- Remove Invalid Parentheses
- Nexus私服使Maven更加强大
- 3D数学基础:图形与游戏开发_读书笔记01
- struts2读常量顺序
- Node Security
- Android中Canvas绘图基础详解(附源码下载)
- LeetCode -- Set Matrix Zeroes
- Android极光推送