【发布时间】:2011-08-30 05:21:15
【问题描述】:
我有兴趣为自己的学习目的开发 PowerPC 仿真器。我在 PowerPC 汇编中找到了大量有关编程的资源,但是经过一段时间的查找,我还没有在任何地方找到指令/操作码映射表。当然,我需要操作码才能编写模拟器。在哪里可以找到?
【问题讨论】:
标签: assembly disassembly powerpc instruction-set opcode
我有兴趣为自己的学习目的开发 PowerPC 仿真器。我在 PowerPC 汇编中找到了大量有关编程的资源,但是经过一段时间的查找,我还没有在任何地方找到指令/操作码映射表。当然,我需要操作码才能编写模拟器。在哪里可以找到?
【问题讨论】:
标签: assembly disassembly powerpc instruction-set opcode
我进行了更多搜索,并在 IBM 的网站上找到了文档。 This page 链接到三本书的文档,其中the first one 包含有关 PowerPC 指令的所有相关信息。
看到许多指令都具有相同的 OPCODE 字段值,我最初感到困惑,并想,“那么我们将如何区分指令?”。但是,在第 1.7 节“指令格式”中,整个体系结构中使用的许多指令格式实际上都有一个两部分的操作码;第一部分是指令高端的六位 OPCODE 字段,第二部分是称为 XO 的字段,其中包含操作码的额外标识。它的大小和位置因指令格式而异。
【讨论】:
【讨论】:
最新的规范是 Power ISA 书籍,可在 here 获取。附录中有很多表格。
请注意,ISA 会随着时间的推移而有所波动,因此最好找到您要模拟的特定内核的文档。
【讨论】:
许多其他资源早已丢失,这是一个自 2020 年起有效且最有可能永久保留的答案。
查找PowerPC 微处理器系列:程序员参考指南; Archive.org 托管 this one from 1995,并且该文档也可在其他地方找到 - 搜索文本 MPRPPCPRG-01 以找到其他副本。
在该文档中,跳至:
根据文档的日期,这是 1995 年的 PowerPC 版本,即前几代 PowerMac、各种许可的 Mac 克隆、IBM ThinkPad 850 等。
这些表很紧凑,只提供编码信息(遵循 IBM 约定,第 0 位是最重要的):
【讨论】:
如果您使用的是 Mac,请查看 /Library/Application Support/Shark/Helpers/PowerPC Help.app,或选择 Services -> ISA Reference -> Lookup PowerPC Instruction。
【讨论】: