なぜ URCL を ASM に変換するのですか?
URCL は、ほぼすべての .asm ターゲットにマッピングできるように、意図的に RISC アセンブリに近い状態に保たれたユニバーサル中間言語です。開発者が .urcl を実際のアセンブリにコンパイルするのは、エミュレータではなく、特定の命令セットを備えたレッドストーンコンピュータや自作 CPU 上でコードを実行したい場合です。
URCL から ASM への変換方法
URCL リファレンスコンパイラ (Haku8866/URCL) OPEN-SOURCE
py URCL.py <myISA> program.urcl output.txt を実行します。ここで <myISA> は(Template.py/ExampleISA.py に基づく)Python ISA 設定です。出力されたアセンブリ出力を .asm として名前変更または保存します。
URCL.NET OPEN-SOURCE
URCL.NET ツールチェーンを使用して .urcl プログラムをロードし、ターゲットアセンブリを出力します。これは、ISA 固有の出力を書き出す前にコア命令のローアリング(低級化)を適用します。
これらの形式について
.urcl ファイルは、URCL (Universal Reduced Computer Language) で記述されたプレーンテキストのソースファイルです。これは主に Minecraft のレッドストーンコンピュータコミュニティや趣味の CPU 設計者によって使用される、シンプルな RISC スタイルのアセンブリ言語です。単なるテキストであるため、Visual…
.URCL の詳細を開く →ASMファイルはアセンブリ言語のソースコードであり、低レベルのCPU命令を記述したプレーンテキストファイルです。任意のテキストエディタで開いて閲覧や編集が可能です。コードを実行するには、NASM、MASM、またはGNU…
.ASM の詳細を開く →品質と注意点
- 正確な ISA 設定を指定する必要があります。これがないと、コンパイラはどのターゲットアセンブリを生成すべきか判断できません。
- 複雑な URCL 命令はコア命令に分解されるため、生成された
.asmは手書きのコードよりも長く、最適化されていない可能性があります。 - 単一の « 正解 » のアセンブリ出力というものは存在しません。ターゲット ISA ごとに異なる
.asmが生成されるため、結果に互換性はありません。