因此如果我们在回到主函数,就可以像这样使用我们的 eval 函数工作:
- bool running = true; int ip = 0;
- // instruction enum here
- // eval function here
- // fetch function here
- int main() {
- while (running) { eval(fetch());
- ip++; // increment the ip every iteration }
- }
栈!
很好,那会很完美的完成这个工作。现在,在我们加入其他指令之前,我们需要一个栈。幸运的是,栈是很容易实现的,我们仅仅需要使用一个数组而已。数组会被设置为合适的大小,这样它就能包含256个值了。我们也需要一个栈指针(常被缩写为sp)。这个指针会指向栈数组。
为了让我们对它有一个更加形象化的印象,让我们来看看这个用数组实现的栈吧:
- [] // empty
- PSH 5 // put 5 on **top** of the stack [5]
- PSH 6
- [5, 6]
- POP [5]
- POP
- [] // empty
- PSH 6 [6]
- PSH 5
- [6, 5]










