b (分支) 指令
用途
分支到指定的目标地址。
语法
| 位数 | VALUE |
|---|---|
| 0 - 5 | 18 |
| 6 - 29 | LL |
| 30 | AA |
| 31 | LK |
描述
B 指令将分支到由分支目标地址指定的指令。 分支目标地址是通过两种方法中的一种进行计算的。
使用 B 指示信息时,请考虑以下事项:
- 如果 "绝对地址位" (0) 为 0 ,那么将通过并置 24 位 李 字段来计算分支目标地址。 通过从目标地址中减去指令地址并将结果 4 4 和 b 来计算此字段。'00'然后,将结果扩展为 32 位,并添加到该分支指令的地址。
- 如果 AA 位为 1 ,那么分支目标地址是与 b 并置的 李 字段。'00'sign-extended to 32 位。 李 字段为目标地址的低阶 26 位除以 4。
B 指令具有四种语法形式。 每个语法表单对 "链接位" 和 "链接寄存器" 都有不同的影响。
| 项 | 描述 | |||
|---|---|---|---|---|
| 语法表单 | 绝对 地址位 (AA) | 固定点 异常寄存器 | 链路位 (LK) | 条件 注册字段 0 |
| 博 | 0 | 无 | 0 | 无 |
| BA | 1 | 无 | 0 | 无 |
| 布尔 | 0 | 无 | 1 | 无 |
| bla | 1 | 无 | 1 | 无 |
B 指令的四种语法形式从不影响 "定点异常寄存器" 或 0 寄存器字段 0 "。 语法形式设置了 AA 位和 Link 位 (LK) ,并确定使用哪种方法来计算分支目标地址。 如果 "链接位" 1 LK) 设置为 1 ,那么指令的有效地址将放置在 "链接寄存器" 中。
参数
| 项 | 描述 |
|---|---|
| 目标地址 | 指定目标地址。 |
示例
- 以下代码将程序的执行转移至there:
here: b there cror 31,31,31 # The execution of the program continues at there. there: - 以下代码将程序的执行转移至here并设置链接寄存器:
bl here return: cror 31,31,31 # The Link Register now contains the address of return. # The execution of the program continues at here. here: