一个非常简单的CPU模拟器

周末想要校验一下一个流水线模型,写了一个python的模拟程序。写完以后突然心血来潮,想给做底层的兄弟介绍一下CPU和虚拟机的基本原理,所以又顺手写了一个CPU模拟器,放到这里:nekin2017/pipeline_simulator


根目录上的两个东西和这个事情关系不大,读者可以忽略,模拟器在simple cpu目录下,包含两个文件:

assembler.py:这个负责把.s文件编译成可以运行的二进制

cpu_sim.py:这个负责模拟CPU运行,把一个程序加载到CPU的内存中运行


要试一下,保证你的系统中安装了python3,clone下来,make就可以了。CPU的定义在README.rst中,你可以修改test.s来写你自己的汇编程序。


这个基本上这个不需要特别的具体实践知识,只需要课本上的基本原理,代码很短(我才写了几个小时),但什么是指令,什么是编译,什么是重定位,虚拟机怎么工作,都涉及了。我原来一直想写一个简单的程序说明这些概念,这算是个交代。


有兴趣的同学可以考虑加指令,加IO上的功能,做函数调用ABI,系统调用,可能会比较好玩。我自己是没有时间接着弄了。


有问题的可以在这里问,我不专门解释什么了,任何一个方向都可以说出一堆的背景来,泛泛解释变成写教材了,这个时间耗不起,意义也不大。

编辑于 2018-05-26 10:51