最近我读了很多关于 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,我如何将其写为程序第一行执行中的前四个数字?
2) 我如何告诉 OS X 或 Ubuntu 将程序加载到物理内存中?我假设编译器做的第一件事是将操作系统的指令写入生成的二进制文件?
3)您可能知道的任何可以帮助我的资源将不胜感激。