WASM的基础

2025-03-27  本文已影响0人  不决书

定义:

WASM是一种为了基于栈的虚拟机设计的二进制指令格式

数据类型:

数值类型:
i32 i64
f32 f64
数组类型: v128

注意: 没有布尔, 字符串,f16, i128, 复杂类型

WASM指令集:

Wasm的组成部分

Id Section Desc
0 custom section WASM执行过程会忽略,
包含一些调试信息,版本信息
1 type scecion 包含所有的函数的签名
type $name func((param i32) (result i32))
2 import section 用来声明外部导入的元素:
- 函数
- 内存
- 表格
- 全局变量
(func $name import("mod", "name")
(param i32) (result i32)
)
3 function section 用来声明函数的定义
(func $name (param ¥arg1 i32) (result i32)
INST 1
INST 2
...
)
4 table section 定义了用到的表格 (table 1 1 funcref)
5 memory section 定义了用到的内存 (memory 1 10)
6 global section 定义了全局变量
7 export section 定义了导出的元素 (export "name" (memory 0))
(export "name" (func $name))
8 start section 入口函数
9 element section 为表格内容进行初始化
10 code section 二进制格式中包含了函数的指令
11 data section 用来初始化内存的内容
12 data count section

执行流程

image.png

执行环境

Wasmtime

是一个使用Rust编写的Wasm 运行时,有字节码联盟推出


image.png
上一篇 下一篇

猜你喜欢

热点阅读