Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

store: Wasm-Textbefehl

Die store Speicheranweisungen werden verwendet, um eine Zahl aus dem Stack im Speicher abzulegen.

Es gibt store-Anweisungen, um i32, i64, f32 und f64 im Speicher abzulegen. Für die Ganzzahlen gibt es separate Anweisungsvarianten, um eine weit typisierte Zahl in eine schmalere Zahl im Speicher abzulegen. Beispielsweise können Sie eine 32-Bit-Zahl in einem 8-Bit-Speicherplatz speichern, indem Sie i32.store8 verwenden. Wenn die Zahl nicht in den engeren Zahlentyp passt, wird sie umgewickelt. Alle Varianten sind unten aufgelistet.

Probieren Sie es aus

(module (memory $memory 1) (export "memory" (memory $memory)) (func (export "store_in_mem") (param $num i32) i32.const 0 local.get $num ;; store $num at position 0 i32.store ) ) 
const url = "{%wasm-url%}"; const result = await WebAssembly.instantiateStreaming(fetch(url)); const store_in_mem = result.instance.exports.store_in_mem; const memory = result.instance.exports.memory; store_in_mem(100); const dataView = new DataView(memory.buffer); const first_number_in_mem = dataView.getUint32(0, true); console.log(first_number_in_mem); // Expected output: 100 

Syntax

Speichern im Standardspeicher

wat
;; 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)) 

Speichern in einem angegebenen Speicher (falls Mehrfachspeicher unterstützt wird)

wat
;; 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)) 

Anweisungen und Opcodes

Anweisung Binärer 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

Spezifikationen

Specification
Unknown specification
# syntax-instr-memory

Browser-Kompatibilität

webassembly.api.Memory

webassembly.multiMemory

Hinweis: Die multiMemory-Kompatibilitätstabelle gibt die Versionen an, in denen store mit einem angegebenen Speicher verwendet werden kann.