私は自分の学習目的でPowerPCエミュレーターを開発することに興味があります。PowerPCアセンブリでのプログラミングに関するかなりの量のリソースを見つけましたが、かなりの時間をかけて調べた後、まだどこにも命令/オペコードマッピングテーブルを見つけることができませんでした。もちろん、エミュレーターを作成できるようにするには、オペコードが必要です。どこにありますか?
6 に答える
私はもう少し探して、IBMのWebサイトでドキュメントを見つけました。このページは3冊のドキュメントにリンクしています。最初の1冊には、PowerPCの説明に関連するすべての情報が含まれています。
最初は、多くの命令がすべて同じOPCODEフィールド値を持っているのを見て混乱し、「それでは、命令をどのように区別するのか」と考えました。ただし、セクション1.7「命令フォーマット」では、アーキテクチャ全体で使用される命令フォームの多くは、実際には2つの部分からなるオペコードを持っています。最初の部分は命令のハイエンドにある6ビットのOPCODEフィールドであり、2番目の部分はXOと呼ばれるフィールドであり、オペコードの追加のIDが含まれています。そのサイズと場所は、命令フォーマットによって異なります。
これが1つです:http://pds.twi.tudelft.nl/vakken/in101/labcourse/instruction-set/
編集:これはより良いです:32ビットマイクロプロセッサのプログラミング環境
最新の仕様は、ここから入手できるPowerISAブックです。付録にはたくさんの表があります。
ISAは時間の経過とともに少し変動するため、エミュレートする特定のコアのドキュメントを見つけるのが最善の場合があることに注意してください。
他の多くのリソースは長い間失われているので、2020年の時点で有効であり、永続的に残る可能性が最も高い回答を次に示します。
PowerPCマイクロプロセッサファミリのコピーを検索する:プログラマーズリファレンスガイド; Archive.orgは1995年からこれをホストしており、同じドキュメントは他の場所でも入手できます。テキストMPRPPCPRG-01を検索して、他のコピーを見つけてください。
そのドキュメントでは、次のいずれかにスキップします。
- セクション「4.2PowerPC命令セットリスト」の冒頭の44ページ。これは「表33.ニーモニックでソートされた完全な命令リスト」で始まります。また
- '表34.オペコードでソートされた完全な命令リスト'の51ページ。
ドキュメントの日付によると、これはPowerPCの1995年のビンテージバージョンです。つまり、PowerMacの最初の数世代、さまざまなライセンスのMacクローン、IBMThinkPad850などに含まれていました。
テーブルはコンパクトで、エンコーディング情報のみを提供します(ビット0が最も重要であるというIBMの規則に従います)。
Macを使用している場合は、/ Library / Application Support / Shark / Helpers / PowerPC Help.appを確認するか、[Services]-> [ISA Reference]-> [LookupPowerPCInstruction]を選択します。