なぜ URCL を HEX に変換するのですか?
URCL は固定されたマシンコードではなく中間言語であるため、数値オペコードの生ダンプとしての .hex は、具体的な命令セットを選択して初めて意味を持ちます。ユーザーは、完成したプログラムを自作 CPU や Redstone CPU にフラッシュまたはロードするために .hex を生成します。
URCL から HEX への変換方法
URCL リファレンスコンパイラ (Haku8866/URCL) OPEN-SOURCE
py URCL.py <myISA> program.urcl output.txt を実行して定数を10進数に変換し、複雑な命令を低級化することで、hex にアセンブル可能な状態の ISA アセンブリを取得します。
ターゲット ISA のアセンブラ FREE
コンパイラのアセンブリ出力を、ISA に対応するアセンブラに読み込ませ、CPU にロードするための最終的な .hex マシンコードイメージを出力します。
これらの形式について
.urcl ファイルは、URCL (Universal Reduced Computer Language) で記述されたプレーンテキストのソースファイルです。これは主に Minecraft のレッドストーンコンピュータコミュニティや趣味の CPU 設計者によって使用される、シンプルな RISC スタイルのアセンブリ言語です。単なるテキストであるため、Visual…
.URCL の詳細を開く →.hexファイルはIntel HEXファイルです。Arduino、AVR、PICチップなどのマイコン用にコンパイルされたファームウェアが、プレーンテキストのレコードとして保存されています。PC上で実行するものではなく、Arduino…
.HEX の詳細を開く →品質と注意点
- URCL コンパイラはテキスト形式のアセンブリを出力し、hex は出力しないため、実際の
.hexファイルを作成するには2番目のアセンブラステップが必要です。 - 正確な hex レイアウト(ワードサイズ、バイト順序)は、URCL 自体ではなく、ISA 設定の BITS とターゲットアセンブラに依存します。
- 複雑な命令からコア命令への低級化は hex 生成の前に行われるため、マシンコードは手動でアセンブルしたものより大きくなる可能性があります。