VM 指令:0 1 dup 11 == 17 9 if jmp swap over + swap 1 + 2 jmp swap print

地址 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
指令 0 1 dup 11 == 17 9 if jmp swap over + swap 1 + 2 jmp swap print

解释:

压栈 0 1

  1. dup 复制栈顶元素

  2. 11 == 比较栈顶元素是否等于 11

  3. 17 9 if 若栈顶元素等于 11,则跳转到第 17 行指令;否则跳转到第 9 行指令

  4. jmp 无条件跳转

  5. swap 交换栈顶两个元素

  6. over 复制栈顶元素的上一个元素

  7. + 相加栈顶两个元素

  8. swap 交换栈顶两个元素

  9. 1 + 加 1

  10. 2 jmp 无条件跳转

  11. print 输出栈顶元素

最终输出:55