私は 8086 CPU エミュレーターを持っています。8086 命令のみをエミュレートします。現在、このエミュレータを対象とする C コンパイラを探しています。これを実行できる C コンパイラはありますか?
また、使用可能なlibcなどは私にとって重要ではありません。エミュレーターはカスタム (PC 以外の) ハードウェアを使用するため、libc や ctr0 を書き換える必要があります。
私は 8086 CPU エミュレーターを持っています。8086 命令のみをエミュレートします。現在、このエミュレータを対象とする C コンパイラを探しています。これを実行できる C コンパイラはありますか?
また、使用可能なlibcなどは私にとって重要ではありません。エミュレーターはカスタム (PC 以外の) ハードウェアを使用するため、libc や ctr0 を書き換える必要があります。
bcc - Bruce の C コンパイラ
説明
Bcc は、8086 アセンブラーを生成する単純な C コンパイラーです。さらに、コンパイラーのコンパイル時オプションにより、80386 または 6809 バージョンを使用できます。コンパイラは、ビット フィールドが他の整数型の 1 つにマップされるという制限だけで、従来の K&R C を理解します。
デフォルトの操作は、ソース ファイルから a.out と呼ばれる 8086 実行可能ファイルを生成することです。
ワトコムを開く
Open Watcom C/C++ ユーザー ガイド(PDF リンク)のコンパイラ オプション / 80x86 ランタイム コンベンション0の説明から:
(16 ビットのみ) コンパイラは、生成されたオブジェクト コードで 8086 命令のみを使用します。これがデフォルトです。結果のコードは、8086 およびすべての上位互換プロセッサで実行されます。「0」を選択すると、マクロ __SW_0 が事前定義されます。
Free Pascalは、 16 ビット 8086 実行可能ファイルも生成できます。これはネイティブ コンパイラではありません。最新の 32 ビット マシンでコンパイルしてから、実行可能ファイルを IBM 51XX またはクローンにコピーする必要があります。