在基于堆栈的虚拟机中,数据在弹出操作之后会去哪里



让我们假设我有以下VM的字节码:

push constant 10
push constant 20
call add
pop

此操作的结果是30。我确实理解什么是pushpopcall操作,push将常量推送到堆栈,调用跳转到另一个分支,pop删除堆栈顶部的内容。但是pop操作的价值在哪里(在这种情况下(?这对我来说是个误会。

此处没有。pop丢弃该值。这有点像高级源代码中发生的情况,如果您调用一个函数而不将结果存储在变量中。

最新更新