极小型的虚拟机:xs-vm

jopen 9年前

xs-vm 是一个极小型的虚拟机,适用于教学。

这个项目的目的是执行一个简单的虚拟机,能够像 ARM 一样执行简单的汇编代码。我将一直让它保持简单(所以可能没有操作模式,中断处理,等等),因为它是为了教学而创建的。至于为什么用 Python 呢,这个项目优先考虑的是开发速度而不是性能,所以 Python 最适合。

架构:

虚拟机有16个寄存器 (R0-R15)。大部分是通用的,有一些特殊的:

  • SP (R13)。堆栈指针。指到最后一个元素 push 到 堆栈(或 0XFFFFFF,如果没有东西被 push)。

  • LR (R14)。链接寄存器。持有该函数调用的返回地址。

  • PC (R15)。程序计数器。持有这将在未来执行的,存储器中的指令地址。

函数调用时,结果是存在 R0, 而 R1-R3 通常用来传递参数。


项目主页:http://www.open-open.com/lib/view/home/1437450293381