汇编七、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地址;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,570评论 8 114
  • 组件 计算机是一种数据处理设备,它由CPU和内存以及外部设备组成。CPU负责数据处理,内存负责存储,外部设备负责数...
    哆啦灬少A梦阅读 1,658评论 1 2
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,470评论 0 1
  • 更新pip的时候,以及使用pip安装python包的时候,注意权限
    阳春是你阅读 1,824评论 0 0
  • 【美容篇】昨天说了手法,大家用手法配上适合自己的产品才能相得益彰。产品我就不用介绍了,因为大家都会选择适合自己的产...
    晨曦_邱月晖阅读 254评论 0 0