B.cond
条件分支
语法
B.cond Label
注释
cond
标准条件之一。
Label
条件满足时跳转的程序标签。它与该指令之间的偏移量,范围为±1MB。
使用
以PC相对偏移量有条件地跳转到标签处。这不是子函数调用或者返回。
B
分支(无条件)。
语法
B Label
注释
Label
无条件跳转的程序分支标签。它与该指令地址之间的偏移量。范围为±128MB。分支可以向前或者向后跳转128MB。
使用
无条件分支跳转到到标签的相对偏移量。这不是子函数调用或返回。
BFC
清除位域,其余位不变。
这条指令是BFM的别称。
等效指令位BFM Wd, WZR, #(-lsb MOD 32), #(width-1)
。
语法
BFC Wd, #Lsb, #width ;32位
BFC Xd. #Lsb, #width ;64位。
注释
Wd
32位目标通用寄存器。
Lsb
取决于指令
- 32位通用寄存器
目标寄存器位域起始位。范围为0~31。
- 64位通用寄存器
目标寄存器位域起始位。范围为0~63。
width
取决于指令
- 32位通用寄存器
位域的宽度,范围为1 ~ 32-Lsb。
- 64位通用寄存器
位域的宽度,范围为1 ~ 64-Lsb。
Xd
64位目标通用寄存器。
架构支持
支持Armv8.2及更好版本。
BFI
位域插入。
这条指令是BFM的别称。
这条指令的等效指令是BFM Wd, Wn, #(-lsb MOD 32), #(width-1)
。
语法
BFI Wd, Wn, #Lsb, #width ;32位
BFI Xd, Xn, #lsb, #width ;64位
注释
Wd
32位目标通用寄存器。
Wn
32位源通用寄存器。
Lsb
取决于指令
- 32位通用寄存器
目标寄存器位域起始位,范围为0~31。
- 64位通用寄存器
慕白寄存器位域起始位,范围为0~63。
width
取决于指令
- 32位通用寄存器
位域的宽度,范围为1 ~ 32-Lsb。
- 64位通用寄存器
位域的宽度。范围为1 ~ 64-Lsb。
Xd
64位目标通用寄存器。
Xn
64位源通用寄存器。
使用
位域插入将源寄存器中的任意数量的低阶位复制到目标寄存器中任意位置的相同数量的相邻位,而不改变其他位。