ADD X0,X1,X2 ;寄存器X1和X2的值相加后传送到X0
AND X0,X0,#0xF ;X0的值与0xF相位与后的值传送到X0
ADRP {cond} Rd label ;以页为单位的大范围的地址读取指令,P=page。Rd加载的目标寄存器。lable为地址表达式。
B/BL ;绝对跳转#imm, 返回地址保存到LR(X30)
BLR Xm ;跳转到由Xm目标寄存器指定的地址处,同时将下一条指令存放到X30寄存器中。
BR Xm ;跳转到由Xm目标寄存器指定的地址处。不是子程序返回
CBZ ;比较(Compare),如果结果为零(Zero)就转移(只能跳到后面的指令)
CBNZ ;比较,如果结果非零(Non Zero)就转移(只能跳到后面的指令)
CMP ;比较指令,相当于SUBS,影响程序状态寄存器CPSR
EOR X0,X0,#0xF ;X0的值与0xF相异或后的值传送到X0
LDR X5,[X6,#0x08] ;X6寄存器加0x08的和的地址值内的数据传送到X5
LDP x29, x30, [sp,#0x10] ;出栈指令
LDRB R0,[R1,#8] ;将存储器地址为R1+8的字节数据读入寄存器R0,并将R0的高24位清零。
LDRH R0,[R1,R2] ;将存储器地址为R1+R2的半字数据读入寄存器R0,并将R0的高16位清零。
LDMFD SP! , {R0, R1, R2} ;把sp指向的3个连续地址段中的数据拷贝到r0,r1,r2这3个寄存器中去。
MOV X1,X0 ;将寄存器X0的值传送到寄存器X1
ORR X0,X0,#9 ;X0的值与9相位或后的值传送到X0
STMFD SP!, {R0} ;把R0保存到堆栈(sp指向的地址)中。
STR R0,[R1],#8 ;将R0中的字节数据写入以R1为地址的存储器中,并将新地址R1+8写入R1。
STR R0,[R1,#8] ;将R0中的字节数据写入以R1+8为地址的存储器中。
STP x29, x30, [sp, #0x10] ;入栈指令
STRB R0,[R1] ;将寄存器R0中的字节数据写入以R1为地址的存储器中。
STRB R0,[R1,#8] ;将寄存器R0中的字节数据写入以R1+8为地址的存储器中。
STRH R0,[R1] ;将寄存器R0中的半字数据写入以R1为地址的存储器中。
STRH R0,[R1,#8] ;将寄存器R0中的半字数据写入以R1+8为地址的存储器中。
SUB X0,X1,X2 ;寄存器X1和X2的值相减后传送到X0
RET {Xm} ;跳转到由Xm目标寄存器指定的地址处。是子程序返回。Xm可以不写,默认是X30.
操作码 条件码助记符 标志 含义
0000 EQ Z=1 相等
0001 NE(Not Equal) Z=0 不相等
0010 CS/HS(Carry Set/High or Same) C=1 无符号数大于或等于
0011 CC/LO(Carry Clear/LOwer) C=0 无符号数小于
0100 MI(MInus) N=1 负数
0101 PL(PLus) N=0 正数或零
0110 VS(oVerflow set) V=1 溢出
0111 VC(oVerflow clear) V=0 没有溢出
1000 HI(HIgh) C=1,Z=0 无符号数大于
1001 LS(Lower or Same) C=0,Z=1 无符号数小于或等于
1010 GE(Greater or Equal) N=V 有符号数大于或等于
1011 LT(Less Than) N!=V 有符号数小于
1100 GT(Greater Than) Z=0,N=V 有符号数大于
1101 LE(Less or Equal) Z=1,N!=V 有符号数小于或等于
1110 AL 任何 无条件执行(默认)
1111 NV 任何 从不执行