1

我正在编写引导代码,我只想在分支指令中使用相对寻址。

我注意到以下汇编代码:

110: lwz r4,0(r6)
      ...
      ...
     b 110b

分支的目的地是一个全为数字的标签,分支指令在标签后有字母“b”。我假设'b'意味着倒退。我还看到了“f”,我认为这意味着向前。

这种表示法似乎暗示着相对寻址,但我找不到任何说明这种情况的文档。

使用数字后跟“f”或“b”的符号是保证相对分支的唯一机制吗?还是可以将字母数字标签(更有意义的名称)与 af/b 后缀一起使用?

我正在使用 gcc 交叉编译器。

4

2 回答 2

1

从使用的指令推断出相对/绝对的区别。汇编器不需要猜测你想要哪一个。对于 PPC:

b  110b ; relative
ba 110b ; absolute
于 2012-06-25T14:15:23.437 回答
1

您其他问题的答案在符号名称的气体文档中:

全数字标签是“本地标签”,因此您无需为每个标签发明唯一名称;我想这在宏中特别有用。b/f 后缀是确定您所指的标签所必需的,因为名称不需要是唯一的(它还告诉解析器它是本地标签而不是整数立即数)。

于 2013-01-18T23:11:35.300 回答