store:Wasm 文本指令
store
内存指令 用于将堆栈上的数字存储到内存中。
存在用于将 i32
、i64
、f32
和 f64
存储到内存中的 store
指令。对于整数,存在单独的指令变体,用于将宽类型数字存储到内存中较窄的数字中。例如,可以使用 i32.store8
将 32 位数字存储到内存中的 8 位插槽中。如果数字不适合较窄的数字类型,它将环绕。所有变体都列在下面。
试试看
语法
存储到默认内存中
wasm
;; Store value in default memory at particular offset
i32.const 0 ;; stack variable with offset in memory to store the number
i32.const 20 ;; stack variable with the number to store
i32.store ;; store in default memory
;; Store using S-function (same values and offset)
(i32.store (i32.const 0) (i32.const 20))
存储到指定的内存(如果支持多内存)
wasm
;; Store in memory referenced by its index
i32.const 0 ;; offset in memory to store the number
i32.const 20 ;; the number to store
i32.store (memory 2) ;; store in memory with index 2
;; Store in memory referenced by its name
i32.const 0 ;; offset to store the number
i32.const 20 ;; the number to store
i32.store (memory $memoryName) ;; store in memory with name "$memoryName"
;; Store in same memory using an S function
(i32.store (memory $memoryName) (i32.const 0) (i32.const 20))
指令和操作码
指令 | 二进制操作码 |
---|---|
i32.store |
0x36 |
i64.store |
0x37 |
f32.store |
0x38 |
f64.store |
0x39 |
i32.store8 |
0x3a |
i32.store16 |
0x3b |
i64.store8 |
0x3c |
i64.store16 |
0x3d |
i64.store32 |
0x3e |
规范
规范 |
---|
未知规范 # syntax-instr-memory |
浏览器兼容性
BCD 表格仅在浏览器中加载。
注意:Wasm 模块中的内存支持与 WebAssembly.Memory
JavaScript API 匹配。multiMemory 键指示可以在其中使用指定内存的 store
的版本。