最近我一直在阅读关于CPU和架构方面的内容,主要是操作码、集成电路等。我已经做了几年的Python开发,想练习一下编写机器码。
我觉得很有趣,可以将一个非常简单的Python脚本编译成机器码,作为练习的方式。脚本如下:
a = 2
b = 3
c = a + b
print c
我正在使用Python编写编译器,因为我在Python方面比C更加擅长。我稍微查看了一下,发现有以下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,我如何将其作为程序第一行执行的前四个数字写入?
2)我如何告诉OS X或Ubuntu将程序加载到物理内存中?我假设编译器做的第一件事是将指令写入结果二进制文件的OS上?
3)如果您知道任何可以帮助我的资源,将不胜感激。