最近、私は CPU とアーキテクチャについてかなり読んでいます。主にオペコード、集積回路などです。私は数年間 Python 開発者をしており、マシンコードを書く練習をしたいと思っています。
私は楽しみのために、非常に単純な python スクリプトをマシンコードにコンパイルして、それを実践する方法を考えました。スクリプトは次のとおりです。
a = 2
b = 3
c = a + b
print c
私はPythonほどCが得意ではないので、コンパイラをPythonで書いています。少し調べてみたところ、次の python ライブラリが自由に使えるので、役立つかもしれません。
binascii.hexify(hex(2)) <-- should convert 2 to binary, correct?
file = open('/usr/local/bin/my_sample_program','wb') <-- should write the resulting binary file
Intel Core i5 のオペコードを見つける必要がありますが、それは簡単なはずです。
私の質問は次のとおりです。
1) オペコードをファイルに書き込むにはどうすればよいですか? つまり、値 2 を含むようにレジスタを設定するためのオペコードが0010であると仮定すると、これをプログラムの実行の最初の行の最初の 4 つの数字としてどのように記述すればよいでしょうか?
2) OS (OS X または Ubuntu) に、プログラムを物理メモリにロードするように指示するにはどうすればよいですか? コンパイラが最初に行うことは、結果のバイナリ ファイルに OS の命令を書き込むことだと思いますか?
3) 私を助けることができるあなたが知っているかもしれないどんなリソースでも感謝します.