ARM64特有一些的汇编指令

简介: ARM64特有的汇编指令

adrp指令(address page)

它是一条地址读取指令,是用于计算指定的数据地址到当前PC值的相对偏移。
下面是它具体的用法及解释

image.png

得到一个大小为4KB的页的基址,而且在该页中有全局变量g的地址;ADRP就是讲该页的基址存到寄存器X6中;
ADD指令会算出g的地址,X6+#_g@PAGEOFF,#_g@PAGEOFF是一个偏移量;这样就得到了g的地址X6;

•内存读写指令(ldr、ldur、ldp, str、stur、stp)

STR、STP、STUR为存储数据指令(注:以ST开头的表示为存储指令)
LDR、LDP、LDUR为取出数据指令(注:以LD开头的表示为取出数据)
以下是具体指令说明及汇编代码分析
STR指令:将数据从寄存器中读出来,存储到内存中。
STUR指令:将寄存器中的负数数据读取出来,存放到内存中。
STP指令:表示入栈指令。

image.png

LDR指令:将数据从内存中取出来,存放到寄存器中。
LDUR指令:将内存中负数的数据取出来,并存放到寄存器中。
LDP指令:表示出栈指令

image.png

相关文章
|
4月前
|
存储 程序员
【汇编】“转移”综述、操作符offset、jmp指令
【汇编】“转移”综述、操作符offset、jmp指令
119 1
|
5天前
|
存储 C++
C/C++中的整数除法运算与汇编指令DIV和IDIV
C/C++中的整数除法运算与汇编指令DIV和IDIV
15 1
|
5天前
|
存储 安全 程序员
C/C++中的整数乘法运算与汇编指令MUL和IMUL
C/C++中的整数乘法运算与汇编指令MUL和IMUL
11 0
|
5天前
|
编译器 C++
C/C++中的逻辑运算与汇编指令的交互
C/C++中的逻辑运算与汇编指令的交互
8 0
|
5天前
|
编译器 程序员 C++
C/C++逻辑与运算与汇编指令的关系
C/C++逻辑与运算与汇编指令的关系
10 0
|
5天前
|
程序员
汇编语言中的带符号比较跳转指令
汇编语言中的带符号比较跳转指令
12 0
|
5天前
|
程序员
深入理解汇编:平栈、CALL和RET指令详解
深入理解汇编:平栈、CALL和RET指令详解
11 1
|
5天前
理解汇编中的CALL指令和参数传递
理解汇编中的CALL指令和参数传递
12 1
|
5天前
|
存储 程序员 开发者
深入理解汇编:push、pop、add、sub、lea 指令详解
深入理解汇编:push、pop、add、sub、lea 指令详解
11 1
|
4月前
汇编指令学习(寻址方式)
汇编指令学习(寻址方式)
22 0