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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容