「Cでアセンブラーを記述します。」なぜ低レベル言語の機械語翻訳機を高レベル言語で書くのですか?
私のマイクロプロセッサクラスのインストラクターが私たちに課題を与えて言った: 「Cでアセンブラーを作成します。」-私の最愛の教授 だから、私には少し非論理的に思えた。 私が間違っていなければ、アセンブリ言語は、機械語コードから高レベル言語の旅への最初のステップです。つまり、Cはアセンブリよりも高レベルの言語です。では、Cでアセンブラーを書く意味は何ですか?C言語がないのに、彼らは過去何をしていたのですか?彼らはマシンコードでアセンブラーを書いていましたか? 低レベル言語用の機械語翻訳を高レベル言語で書くのは意味がありません。 たとえば、そのアーキテクチャ用のCコンパイラさえない、まったく新しいマイクロプロセッサアーキテクチャを作成したとします。Cで記述されたアセンブラは、新しいアーキテクチャをシミュレートできますか?私はそれが役に立たないかどうかを意味しますか? ところで、GNU AssemblerとNetwide AssemblerはCで書かれていることを知っています。また、なぜそれらがCで書かれているのだろうかと思っています。 最後に、これは私たちの教授が私たちに与えた単純なアセンブラのソースコードの例です。 // to compile, gcc assembler.c -o assembler // No error check is provided. // Variable names cannot start with 0-9. // hexadecimals are twos complement. // first address of the code section is zero, data section follows the code section. …