答案 0 :(得分:10)
它将其编译成寄存器的使用。
考虑Wasm操作数堆栈的一种方法是它只是一组(无限)虚拟寄存器。但是,不是明确地引用这些寄存器 ,而是每条指令隐含地引用堆栈中的某些槽。但是由于类型检查和验证,编译器总是静态地知道程序中任何一点堆栈上的值的数量和类型。
因此,生成的代码永远不需要实现堆栈,但可以直接将每个堆栈槽(即每个虚拟寄存器)分配给真实的硬件寄存器(或者在寄存器分配耗尽时以通常的方式将它们溢出到硬件堆栈寄存器)。
Wasm是堆栈机器而不是注册机器的唯一原因是代码紧凑性。这是描述寄存器使用的一种特别紧凑的方式。