xs-vm是一个极小型的虚拟机,适用于教学。
这个项目的目的是执行一个简单的虚拟机,能够像ARM一样执行简单的汇编代码。我将一直让它保持简单(所以可能没有操作模式,中断处理,等等),因为它是为了教学而创建的。至于为什么用Python呢,这个项目优先考虑的是开发速度而不是性能,所以Python最适合。
架构:
虚拟机有16个寄存器(R0-R15)。大部分是通用的,有一些特殊的:
SP(R13)。堆栈指针。指到最后一个元素push到堆栈(或0XFFFFFF,如果没有东西被push)。
LR(R14)。链接寄存器。持有该函数调用的返回地址。
PC(R15)。程序计数器。持有这将在未来执行的,存储器中的指令地址。
函数调用时,结果是存在R0,而R1-R3通常用来传递参数。
评论