如何使用gcc powerpc程序集创建绝对和相对分支

如何使用gcc powerpc程序集创建绝对和相对分支,gcc,assembly,powerpc,Gcc,Assembly,Powerpc,我正在编写引导代码,我只想使用分支指令的相对寻址 我注意到以下汇编代码: 110: lwz r4,0(r6) ... ... b 110b 分支的目标是一个全数字的标签,分支指令的标签后面有字母“b”。我想“b”的意思是向后的。我也看到了“f”,我想它的意思是向前 这个符号似乎意味着相对寻址,但我找不到任何说明这种情况的文档 使用数字加上“f”或“b”的符号是保证相对分支的唯一机制吗?或者字母数字标签(更有意义的名称)可以与f/b后缀一起使用吗 我使用的是gc

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

我注意到以下汇编代码:

110: lwz r4,0(r6)
      ...
      ...
     b 110b
分支的目标是一个全数字的标签,分支指令的标签后面有字母“b”。我想“b”的意思是向后的。我也看到了“f”,我想它的意思是向前

这个符号似乎意味着相对寻址,但我找不到任何说明这种情况的文档

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


我使用的是gcc交叉编译器。

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

b  110b ; relative
ba 110b ; absolute

另一个问题的答案在gas文档中,关于:


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

谢谢Igor。我错过了使用“a”绝对阅读PowerPC 32位实现的“编程环境手册”™ “体系结构”,我唯一的PowerPC指南。有些地方很迟钝。伊戈尔-谢谢你的推荐。大量的文档。然而,“来源”的文档与我引用的指南非常相似。表与符号相同。两者都是参考指南,目标是汇编程序的编写者,而不是用户。作为参考指南,它们非常完整,但对于PowerPC组装的新手来说,这不是我的第一选择。