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