在基于堆栈的VM中执行弹出操作后,数据将流向何处?

时间:2018-12-13 20:34:26

标签: virtual-machine bytecode

让我们假设我具有以下虚拟机的字节码:

push constant 10
push constant 20
call add
pop

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

1 个答案:

答案 0 :(得分:0)

无处。 SET @SQL = 'UPDATE Customer SET ' IF LEN(@Name) > 0 SET @SQL = @SQL + 'Name = @Name,' IF LEN(@Age) > 0 SET @SQL = @SQL + 'Age= @Age,' 放弃了价值。就像调用高级函数而不将结果存储在变量中那样,在高级源代码中会发生什么。