COMPASS(COMPアセンブリ言語)[ 1]は、Control Data Corporationの3000シリーズ、および60ビットのCDC 6000シリーズ、7600、Cyber 70、170シリーズのメインフレームコンピュータ用のマクロ アセンブリ言語ファミリのいずれかです。アーキテクチャは大きく異なりますが、マクロと条件付きアセンブリの機能は似ています。
60 ビットマシン用の COMPASS
60 ビット マシンには 2種類の COMPASSがあります。
- COMPASS CP は、ユーザー プログラムを実行するプロセッサである CP (中央プロセッサ) 用のアセンブリ言語です。CDC 6600 CP アーキテクチャを参照してください。
- COMPASS PP は、オペレーティング システムコードのみを実行する PP (周辺プロセッサ) 用のアセンブリ言語です。CDC 6600 PP アーキテクチャを参照してください。
COMPASS は、マクロと条件付きアセンブリ機能を備えた古典的な2 パス アセンブラであり、ソース アセンブリ コードと生成されたマシン コード( 8 進数) の両方を示す完全なリストを生成します。CDC のオペレーティング システムは、ほぼ完全に COMPASS アセンブリ言語で記述されています。
中央処理装置 (CP または CPU) のハードウェアは、A0 から A7、X0 から X7、および B0 から B7という 24 個の操作レジスタを維持します。レジスタ X0 から X7 は 60 ビット長で、データを保持するために使用されます。一方、レジスタ B0 から B7 は 18 ビット長で、主な目的はアドレスを保持するか、インデックス レジスタとして使用することです。ただし、B0 は常に 0 です。プログラミング規則として、B1 (または B7) には正の 1 が含まれることがよくあります。
A またはアドレス レジスタも 18 ビット長です。各 A レジスタは対応する X レジスタとペアになっています。A1 から A5 レジスタのいずれかにアドレスを設定すると、そのメモリ位置 (アドレス) のデータが対応する X レジスタにロードされます。同様に、A6 または A7 レジスタのいずれかにアドレスを設定すると、対応する X6 または X7 レジスタに保持されているデータがそのメモリ位置に格納されます。ただし、A0 はレジスタ X0 の内容に影響を与えずに任意のアドレスを保持するために使用できます。
CP命令は、特にユーザーフレンドリな形式で記述されます。「SA1 A0+B1」は、アドレス レジスタ A1 をアドレス レジスタ A0 とインデックス レジスタ B1 の合計に設定することを意味します。次に、ハードウェアは計算されたアドレスからレジスタ X1 へのメモリ ロードを開始します。
周辺プロセッサ (PP または PPU) 命令は、CPU 命令とはまったく異なります。周辺プロセッサ ハードウェアはより単純で、18 ビットの A (アキュムレータレジスタ)、12 ビットのプログラム アドレス レジスタ、12 ビットの Q レジスタ (プログラマからは見えない)、および 22 ビットの R レジスタ ( Cyber 180システムでの中央メモリの読み取りおよび書き込み命令中にアドレスの再配置を実行するために使用) を備えています。周辺プロセッサ プログラムをアセンブルするために特別なジョブ検証は必要ありませんが、実行するには、特別なシステム編集コマンドを使用してそのようなプログラムをオペレーティング システムにインストールする必要がありました。
さらに読む
- 「コントロールデータ6000シリーズのためのアセンブリ言語プログラミング」ラルフ・グリシュマン著、アルゴリズミックス・プレス、1972年。[2]
参考文献
- ^ 「コンパス - FOLDOC - コンピューティング辞書」.
- ^ http://cholla.mmto.org/computers/firstcdc.html より引用
外部リンク
- 24 ビット システム CDC3100、3200、3300、および 3500 用の COMPASS
- CDC3600 48 ビット システム用 COMPASS
- CDC6000 および 7000 60 ビット システム用の COMPASS
- CDC CYBER システム向け COMPASS バージョン 3
