ARM 64 常见汇编指令

ARM64常用的汇编指令

----------数据传送指令
MOV    X1,X0         ;(move)将寄存器X0的值传送到寄存器X1


--------------------  加载/存储指令 --------------------
LDR    X5,[X6,#0x08]        ;(load word)X6寄存器加0x08的和的地址值内的数据传送到X5
STR X0, [SP, #0x8]         ;(store)X0寄存器的数据传送到SP+0x8地址值指向的存储空间

STP  x29, x30, [sp, #0x10]    ;入栈指令
LDP  x29, x30, [sp, #0x10]    ;出栈指令
CBZ  ;比较(Compare),如果结果为零(Zero)就转移(只能跳到后面的指令)
CBNZ ;比较,如果结果非零(Non Zero)就转移(只能跳到后面的指令)



运算指令

--------------------  算数运算指令 --------------------
ADD    X0,X1,X2     ;(add)寄存器X1和X2的值相加后传送到X0,
SUB    X0,X1,X2     ;(subtract)寄存器X1和X2的值相减后传送到X0,
CMP  ;(compare)比较指令,相当于SUBS,影响程序状态寄存器CPSR 



--------------------  逻辑运算指令 --------------------
AND    X0,X0,#0xF    ;(and) X0的值与0xF相位与后的值传送到X0
EOR    X0,X0,#0xF    ; (exclusive or)X0的值与0xF相 异或 后的值传送到X0
ORR    X0,X0,#9      ; (or)X0的值与9相位 或 后的值传送到X0

程序跳转指令

B      B  Lable  ;(branch)程序无条件跳转到Lable处执行
BL    BL  Lable     ; (branch with link) 当程序无条件跳转到label标号处执行时,同时将当前PC值保存在R14中 



RET   ;(return)子程序返回指令,返回地址默认保存在LR(X30)

你可能感兴趣的:(ARM 64 常见汇编指令)