ARM64基本的汇编语法

记录常用到的arm64汇编语法,参考libjpeg-turbo

常见语法

语法说明备注/示例
.req寄存器重命名DATA .req x0: DATA是寄存器x0的别名
.unreq取消重命名定义.unreq DATA
.balign字节对其.balign 16 :十六字节对其
b跳转到标号处执行b 40 <main+0x40>
cmp比较cmp w0, #0x6e, 不会改变两个寄存器的值即两个寄存器不会变化,但是其结果会影响cpsr状态寄存器的标记值(nzcv)
b.le小于等于(less than or equal to),执行标号,否则不跳转b.le 24 <main+0x24>
b.ge大于等于(great than or equal to),执行标号,否则不跳转
b.gt大于(greater than),执行标号,否则不跳转
b.lt小于(less than),执行标号,否则不跳转
b.eq等于(equal to),执行标号,否则不跳转
b.hi无符号大于,执行标号,否则不跳转

示例

参考

  • GNU AS汇编器官方文档