store: Wasm text instruction
The store
memory instructions, are used to store a number on the stack in a memory.
There are store
instructions for storing an i32
, i64
, f32
, and f64
in memory.
For the integer numbers, there are separate instruction variants for storing a wide typed number into a narrower number in memory.
For example, you can store a 32-bit number into an 8-bit slot in memory using i32.store8
.
If the number doesn't fit in the narrower number type it will wrap.
All the variants are listed below.
Try it
Syntax
Store in default memory
;; 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))
Store to specified memory (if multi-memory supported)
;; 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))
Instructions and opcodes
Instruction | Binary opcode |
---|---|
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 |
Specifications
Specification |
---|
Unknown specification # syntax-instr-memory |
Browser compatibility
BCD tables only load in the browser
Note: Memory support in Wasm modules matches the WebAssembly.Memory
JavaScript API.
The multiMemory key indicates versions in which store
can be used with a specified memory.