fill:Wasm 文本指令

fill 内存指令将内存区域中的所有字节设置为给定字节。

该指令不返回值。如果指定的内存区域超出边界,则会触发陷阱(异常)。

语法

在默认内存中填充

wat
;; Fill region at offset/range in default memory with 255
i32.const 200 ;; The pointer to the region to update
i32.const 255 ;; The value to set each byte to (must be < 256)
i32.const 100 ;; The number of bytes to update
memory.fill ;; Fill default memory

;; Fill default memory using an S-function
(memory.fill (i32.const 200) (i32.const 255) (i32.const 100))

填充指定内存(如果支持多内存)

wat
;; Fill specific memory referenced by its index
i32.const 200 ;; The pointer to the region to update
i32.const 255 ;; The value to set each byte to (must be < 256)
i32.const 100 ;; The number of bytes to update
memory.fill (memory 1) ;; Fill memory with index 1

;; Fill memory referenced by its name
i32.const 200 ;; The pointer to the region to update
i32.const 255 ;; The value to set each byte to (must be < 256)
i32.const 100 ;; The number of bytes to update
memory.fill (memory $memoryName) ;; Fill memory with name "$memoryName"

;; Fill same memory using an S function
(memory.fill (memory $memoryName) (i32.const 200) (i32.const 255) (i32.const 100))

指令和操作码

指令 二进制操作码
memory.fill 0xFC 0x0b

规范

规范
未知规范
# syntax-instr-memory

浏览器兼容性

webassembly.bulk-memory-operations

webassembly.multiMemory

注意:multiMemory 兼容性表格显示了 fill 可用于指定内存的版本。