文件頭部
頭部由魔幻標(biāo)識(shí) ?\x00asm?和32位的版本號(hào)1組成帽哑。1表示當(dāng)前的最小可用版本(Minimum Viable Product, 簡(jiǎn)稱MVP)坟比。多字節(jié)整形用小端模式存儲(chǔ)芦鳍。
后面分成若干段。
image.png
段
象其他Windows系統(tǒng)exe, Linux 系統(tǒng)的ELF文件一樣葛账,wasm也是一個(gè)可執(zhí)行文件柠衅,wasm也同樣內(nèi)部分為按功能分為多個(gè)部分,稱為段籍琳。
wasm 模塊包含段菲宴。眾所周知的段由整數(shù) ID 標(biāo)識(shí),它們是:
- Type: 類型, 函數(shù)簽名
- Import: 導(dǎo)入聲明
- Export: 導(dǎo)出聲明
- Function:導(dǎo)入和內(nèi)部定義的函數(shù)的函數(shù)聲明
(內(nèi)部職能的實(shí)體在"代碼"部分中定義) - Memory:內(nèi)存元素規(guī)格列表(初始大小趋急、最大大泻嚷汀) -
目前,每個(gè)內(nèi)存模塊允許單個(gè)內(nèi)存元素 - Data:數(shù)據(jù)呜达,用于初始化內(nèi)存元素的字節(jié)
- Table:表谣蠢,函數(shù)指針表元素規(guī)范 - 當(dāng)前,單個(gè)表
每個(gè) ism 模塊允許元素 - Element:元素,對(duì)表元素的初始化器的引用
- Global:全局變量(未在數(shù)據(jù)部分映射)
- Start: 開(kāi)始眉踱, 入口點(diǎn)函數(shù)參考(可選)
- Code:代碼挤忙,內(nèi)部函數(shù)體(包括字節(jié)碼)