上QQ阅读APP看书,第一时间看更新
第5章 操作数栈
Wasm程序的执行环境是一台栈式虚拟机,绝大多数Wasm指令都要借助操作数栈来工作:从上面弹出若干数值,对数值进行计算,然后再把计算结果压栈。这台虚拟机还可以附加一块内存,鉴于操作数栈只能存放临时数据,生命力更强的数据则可以放在内存里。此外,这台虚拟机还可以操作表和全局变量。从这一章开始,我们将讨论如何实现这样一台虚拟机,并深入了解Wasm原理和内部细节。
在第3章,我们已经初步讨论了栈式虚拟机和Wasm指令集。在这一章,我们首先实现操作数栈,然后实现虚拟机框架,最后探讨并实现全部参数和数值指令。在后面的章节中,我们再讨论如何实现内存、全局变量和表,以及相关指令。这一章及后面几章的重点是介绍Wasm指令的语义,第12章将专门介绍如何将高级语言编译为这些指令。