興味があったので、機械語で小さなプログラムを書きたいと思います。
私は現在、レジスタ、ALU、バス、およびメモリについて学んでおり、アセンブリ言語ではなくバイナリで命令を記述できることに少し興味があります。
コンパイラを使用する必要がありますか?
できればOSXで動作するもの。
興味があったので、機械語で小さなプログラムを書きたいと思います。
私は現在、レジスタ、ALU、バス、およびメモリについて学んでおり、アセンブリ言語ではなくバイナリで命令を記述できることに少し興味があります。
コンパイラを使用する必要がありますか?
できればOSXで動作するもの。
生のマシン コードを記述するためにコンパイラを使用することはありません。16 進エディタを使用します。残念ながら、私は OSX を使用していないため、特定のリンクを提供することはできません。
マシン コードを作成する場合は、OS で必要なバイナリ ヘッダーの作成方法も学習する必要があります。そうすることをお勧めし、最初に生の出力形式のアセンブラーでテストすることをお勧めします。バイナリ レイアウトを理解すると、これを手作業でマシン コードにアセンブルするのは純粋に機械的なタスクになります。
16 進エディタを使用します。しかし、それを行う代わりに、最初にアセンブラを学ぶことをお勧めします。アセンブラは基本的に、人間が読めるニーモニックと機械が読める 16 進バイトが 1 対 1 で対応する言語です。そのためには、おそらくhttp://ref.x86asm.net/を見て、x86 Mac で動作するアセンブラを見つけてください。yasmが機能するはずだと思います。
何かを 16 進数で直接記述することは非常に困難であり、アセンブリと、アセンブラが生成する基礎となるマシン コードの学習におそらく時間が費やされるでしょう。
コンパイラは、非機械コードを機械コードに変換します...したがって、コンパイラは必要ありません...