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汇编器官方文档