汇编基础 汇编指令 | 您所在的位置:网站首页 › BCS汇编语言 › 汇编基础 汇编指令 |
bl 指令 跳转到标号出执行
b.le :判断上面cmp的值是小于等于 执行标号,否则直接往下走
b.ge 大于等于 执行地址 否则往下
b.lt 判断上面camp的值是 小于 执行后面的地址中的方法 否则直接往下走
b.gt 大于 执行地址 否则往下
b.eq 等于 执行地址 否则往下
B.HI 比较结果是无符号大于,执行地址中的方法,否则不跳转
ret 返回
mov x0,#0x10 x0 = 0x10
str w10 ,[sp] 将w10寄存器的值存到 sp栈空间内存
stp x0,x1,[sp.#0x10] x0、x1 的值存入 sp + 0x10
orr x0,wzr,#0x1 x0 = wzr | 0x1
stur w10 ,[sp] 将w10寄存器的值存到 sp栈空间内存
ldr w10 ,[sp] w10 = sp栈内存中的值
ldp x0,x1,[sp] x0、x1 = sp栈内存中的值
adrp 通过基地址 + 偏移 获得一个字符串(全局变量)
将1的值,左移12位 1 0000 0000 0000 == 0x1000
将PC寄存器的低12位清零
将1 和 2 的结果相加
adrp 是计算指定的数据地址 到当前PC值的相对偏移
由于得到的结果是低12bit为0
10 1024
12 == 4KB
总结 adrp找到的是一个目标数据偏移的相对地址,他是一个不准确的地址,偏移的误差有4KB 为什么偏移的误差是4KB呐? 在地址总线上面,10条地址总线的寻址能力是1024,12条地址总线的能力是4*1024 4KB cmp:ZF=1则AX=BX ZF=0则AX!=BX CF=1则AX=BX CF=0并ZF=0则AX>BX CF=1或ZF=1则AX |
CopyRight 2018-2019 实验室设备网 版权所有 |