文件头部
头部由魔幻标识 \x00asm和32位的版本号1组成。1表示当前的最小可用版本(Minimum Viable Product, 简称MVP)。多字节整形用小端模式存储。
后面分成若干段。
image.png
段
象其他Windows系统exe, Linux 系统的ELF文件一样,wasm也是一个可执行文件,wasm也同样内部分为按功能分为多个部分,称为段。
wasm 模块包含段。众所周知的段由整数 ID 标识,它们是:
- Type: 类型, 函数签名
- Import: 导入声明
- Export: 导出声明
- Function:导入和内部定义的函数的函数声明
(内部职能的实体在"代码"部分中定义) - Memory:内存元素规格列表(初始大小、最大大小) -
目前,每个内存模块允许单个内存元素 - Data:数据,用于初始化内存元素的字节
- Table:表,函数指针表元素规范 - 当前,单个表
每个 ism 模块允许元素 - Element:元素,对表元素的初始化器的引用
- Global:全局变量(未在数据部分映射)
- Start: 开始, 入口点函数参考(可选)
- Code:代码,内部函数体(包括字节码)