C++学习(三九九)ADRP指令
Posted hankern
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++学习(三九九)ADRP指令相关的知识,希望对你有一定的参考价值。
14: 90000014 adrp x20, 0 <__dso_handle>
18: 90000001 adrp x1, 0 <_GLOBAL__sub_I_geotiff.cpp>
1c: 91000294 add x20, x20, #0x0
20: 91000021 add x1, x1, #0x0
ADRP指令
- 编译时,首先会计算出当前PC到exper的偏移量#offset_to_exper
- pc的低12位清零,然后加上偏移量,给register
- 得到的地址,是含有label的4KB对齐内存区域的base地址;
ADR指令
- 编译时,首先会计算出当前PC到exper的偏移量#offset_to_exper
- 然后会用ADD或SUB指令,来替换这条指令;例如ADD register,PC,#offset_to_exper
- register就是exper的地址;
每次看到adrp指令和add指令一起出现时,就代表着将会向某个寄存器中存储变量。
以上是关于C++学习(三九九)ADRP指令的主要内容,如果未能解决你的问题,请参考以下文章