汇编语法归纳

str

str 入栈

stur 入栈

ldr

读取内容数据到寄存器中

sub 减

sub sp, sp, #0x40  //拉升栈空间64字节

add 加

add x0, x0, #0x1  // x0+1 赋值给x0

stp

stp x29, x30, [sp, #0x30]  //x29, 30写入sp偏移0x30地方

orr

orr w0, wzr, #0x1 //相当于 mov w0, #0x1  将1复制给w0

mov

mov w8, #0x9   //0x9赋值到w8

str w8, [sp]  //w8写到sp

mov w8, #0xa //0xa赋值到w8

str w8, [sp, #0x4] //w8写到sp偏移0x4

mov w8, #0xb //0xb赋值到w8

str w8,[sp, #0x8] //w8写到sp偏移0x8

cmp

cmp  比较之后,后面一般跟B

BL 标号:跳转到标号处执行

B.LT 标号:比较结果是小于(less than),执行标号,否则不跳转;

B.LE 标号:比较结果是小于等于(less than or equal to),执行标号,否则不跳转;

B.GT 标号:比较结果是大于(greater than),执行标号,否则不跳转

B.GE 标号:比较结果是大于等于(greater than or equal to),执行标号,否则不跳转

B.EQ 标号:比较结果是等于(equal to),执行标号,否则不跳转

B.NE 标号:不叫结果是不等于(not equal to),执行标号,否则不跳转

B.HI 标号:比较结果是无符号大于,执行标号,否则不跳转

adrp

adrp x0, 1 //1左移12位 ,当前pc寄存器低12清零,以上结果相加存放到x0

add x0, x0, #0x92c // 将x0偏移0x92c地址的值(算出内存地址),赋值给x8

ldrsw

ldrsw x10, [x8, x9, lsl #2] x9左移2位加上8

你可能感兴趣的:(汇编语法归纳)