WebAssembly数据部分中的任意字节

时间:2018-04-02 01:17:43

标签: webassembly

我在WebAssembly中看到的数据部分的每个例子都使用一个字符串,即

(data (i32.const 16) "Hello World")

如何将这些部分用于二进制数据?我怎么能做一些等同于...的事情。

(data (i32.const 16) 0x00 0x01 0x02 0x03)

我必须使用i32.store吗?

2 个答案:

答案 0 :(得分:2)

我最终通过在字符串中使用反斜杠转义字节来解决此问题。我不知道是否有更好的办法。

(data (i32.const 16) "\00\01\02\03")

答案 1 :(得分:1)

WebAssembly规范的部分为details the WAT text format

数据部分defines data for a given memory index and offset by a string。此字符串的格式指定为elsewhere in the specification。它是一种UTF8编码,具有少量转义序列∖hh,用于编码选项卡,换行符和\u等编码十六进制字节的内容。

这可能看起来不那么紧凑,但是,当编译为wasm时,它被存储为一个字节序列。