b (分支) 指令

用途

分支到指定的目标地址。

语法

位数 VALUE
0 - 5 18
6 - 29 LL
30 AA
31 LK
描述
目标地址
BA 目标地址
布尔 目标地址
bla 目标地址

描述

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 ,那么指令的有效地址将放置在 "链接寄存器" 中。

参数

描述
目标地址 指定目标地址。

示例

  1. 以下代码将程序的执行转移至there:
    
    here: b there
          cror 31,31,31
    # The execution of the program continues at there.
    there:
    
  2. 以下代码将程序的执行转移至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: