汇编指令b和bl
- b这个指令用来跳转
b指令应用示例
b mycode
mov x0, #0x5
mycode:
mov x1, #0x6
解析:汇编解析到b mycode
就会跳转到mycode:
b mycode
汇编底层会把mycode
转换成地址0x10008e840
,如果是Xcode右边会有注释 ;mycode
条件域
EQ : equal 相等
NE : not equal 不相等
GT : great than 大于
GE : great equal 大于等于
LT : less than 小于
LE : less equal 小于等于
b指令带条件
mov x0, #0x1
mov x1, #0x3
cmp x0, x1
beq mycode
mov x0, #0x5
mycode:
mov x1, #0x6
ret
b指令一般配合cmp使用, b 后面如果为空+跳转地址,则说明会无条件跳转
- eq找的是Z位置,如图
汇编指令bl
bl带返回的指令
// 内部\私有函数
mycode:
mov x0, #0x1
mov x1, #0x2
add x2, x0, x1
ret
// test函数的实现
_test:
bl mycode
mov x3, #0x2
mov x4, #0x1
解析bl
会跳转到mycode:
这个类似内部函数,然后返回,接着往下走,如果使用了b
指令,则不会继续往下走