ADRP指令
ADRP X8, #_g@PAGE ADD X8, X8, #_g@PAGEOFF 得到一个大小为4KB的页的基址,而且在该页中有全局变量g的地址;ADRP就是讲该页的基址存到寄存器X8中; ADD指令会算出g的地址,X8+#_g@PAGEOFF,#_g@PAGEOFF是一个偏移量;这样就得到了g的地址X8; ADR指令 这是一条小范围的地址读取指令,它将基于PC的相对偏移的地址读到目标寄存器中; 使用格式: ADR register exper 编译时,首先会计算出当前PC到exper的偏移量#offset_to_exper 然后会用ADD或SUB指令,来替换这条指令;例如 ADD register,PC,#offset_to_exper register就是exper的地址; ADRP指令 编译时,首先会计算出当前PC到exper的偏移量#offset_to_exper pc的低12位清零,然后加上偏移量,给register 得到的地址,是含有label的4KB对齐内存区域的base地址; 作者:fanren 链接:https://www.jianshu.com/p/e5452c97cfbd 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: CSDN 作者: 一墨一飞花 链接: https://blog.csdn.net