学习WebAssembly正当时:wasm文件结构

文件头部

头部由魔幻标识 ​\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:代码,内部函数体(包括字节码)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容