这对目前来说已经足够了,你以后还可以改进它,但是只要它能完成这个工作,我们应该满足了。
指令编程(代码)
现在开始写虚拟机的代码了。第一,我们需要定义程序的指令。为此,我们可以使用一个枚举类型enum,因为我们的指令基本上是从0到X的数字。事实上,可以说你是在组装一个汇编文件,它会使用像 mov 这样的词,然后翻译成声明的指令。
我们可以只写一个指令文件,例如 PSH, 5 是0, 5,但是这样并不易读,所以我们使用枚举器!
- typedef enum { PSH,
- ADD, POP,
- SET, HLT
- } InstructionSet;
现在我们可以将一个测试程序存储为一个数组。我们写一个简单的程序用于测试:将5和6相加,然后将他们打印出来(用POP指令)。如果你愿意,你可以定义一个指令将栈顶的值打印出来。
指令应该存储成一个数组,我将在文档的顶部定义它;但你或许会将它放在一个头文件中,下面是我们的测试程序:
- const int program[] = { PSH, 5,
- PSH, 6, ADD,
- POP, HLT
- };










