文章目录MOV指令加载与存储指令寻址模式前变基模式后变基模式PC相对地址模式不同位宽的LDR和STR指令多字节内存加载和存储指令基地址偏移量模式前变基模式后变基模式PC相对地址加载指令ADR指令ADRP指令数据加载伪指令相关参考MOV指令MOV指令用于搬移立即数或在寄存器之间搬移数据,格式定义如下:MOV Xd/SP, Xn, SP // 用于寄存器之间数据搬移 MOV Xd, #imm // 用于立即数数据搬移使用MOV搬移立即数时,需要注意立即数的特殊要求:16位立即数,也就是0~65535,这很好理解,ARM的指令只有4个字节,能支持编码的立即数有限;16位立即数左移16/32/48位后得到的立即数,例如0xffff00/0xffff0000/0xff000000。加载与存储指令LDR和STR指令是ARM中最常见的加载与存储指令,逻辑格式定义如下:LDR 目标寄存器,存储器地址 STR 源寄存器,存储器地址寻址模式在A64指令集中,加载和存储指令有多种寻址模式,如下:寻址模式格式说明基地址模式[Xn]访问Xn指向内存地址的数据基地址+偏移量模式[Xn, #offset]访问Xn+offset指向内存地址的数据前变基模式[Xn, #offset]!先更新偏移
浅析ARMv8体系结构:数据访问指令(Aarch64)
文章目录MOV指令加载与存储指令寻址模式前变基模式后变基模式PC相对地址模式不同位宽的LDR和STR指令多字节内存加载和存储指令基地址偏移量模式前变基模式后变基模式PC相对地址加载指令ADR指令ADRP指令数据加载伪指令相关参考MOV指令MOV指令用于搬移立即数或在寄存器之间搬移数据,格式定义如下:MOV Xd/SP, Xn, SP // 用于寄存器之间数据搬移 MOV Xd, #imm // 用于立即数数据搬移使用MOV搬移立即数时,需要注意立即数的特殊要求:16位立即数,也就是0~65535,这很好理解,ARM的指令只有4个字节,能支持编码的立即数有限;16位立即数左移16/32/48位后得到的立即数,例如0xffff00/0xffff0000/0xff000000。加载与存储指令LDR和STR指令是ARM中最常见的加载与存储指令,逻辑格式定义如下:LDR 目标寄存器,存储器地址 STR 源寄存器,存储器地址寻址模式在A64指令集中,加载和存储指令有多种寻址模式,如下:寻址模式格式说明基地址模式[Xn]访问Xn指向内存地址的数据基地址+偏移量模式[Xn, #offset]访问Xn+offset指向内存地址的数据前变基模式[Xn, #offset]!先更新偏移