load32_zero: Wasm SIMD Lade-/Speicherinstruktion
Die load32_zero SIMD Lade-/Speicherinstruktion lädt einen einzelnen Wert von einer angegebenen Speicheradresse in die erste Spur eines v128 Typs i32x4 Wertinterpretation und initialisiert die anderen Spuren mit 0.
Probieren Sie es aus
(module
(import "console" "log" (func $log (param i32)))
(memory $memory 1)
(data (i32.const 0) "\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f\00\01\02\03")
(func $main
i32.const 1
v128.load32_zero
i32x4.extract_lane 0
call $log
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Syntax
;; Common usage v128.load32_zero ;; With optional immediate operands v128.load32_zero mem_idx offset=int align=int
v128.load32_zero-
Die
v128.load32_zeroInstruktion. mem_idxOptional-
Ein Integer, der den Speicherindex darstellt, in Fällen, in denen das Modul mehrere Speicher verwendet. Der Standardwert ist
0. offset=intOptional-
Ein Integer, der eine konstante Anzahl von Bytes darstellt, die zur Speicheradresse hinzugefügt werden, bevor geladen wird. Der Standardwert ist
0. align=intOptional-
Ein Integer, der dem Wasm-Engine einen Hinweis darauf gibt, welche Ausrichtung für die endgültige Adresse erwartet wird. Der Minimalwert ist
1und der Standard- und Maximalwert ist4. Einalign-Wert muss eine Potenz von2sein.
Typ
[memory_address] -> [output]
memory_address-
Ein Integer, der die Speicheradresse darstellt, von der geladen werden soll.
output-
Die Ausgabe
v128Typi32x4Wertinterpretation.
Binärcodierung
| Instruktion | Binärformat | Beispieltext => binär |
|---|---|---|
v128.load32_zero |
0xFD 92:u32 mem_idx:u8 offset:u32 align:u32 |
v128.load32_zero 0 offset=0 align=4 => 0xfd 0x5c 0x02 0x00 |
Hinweis:
Während das Wasm-Textformat den literalen align-Wert angibt, stellt das binäre Äquivalent den Exponenten der Formel 2^x dar, die zur Berechnung der Ausrichtung verwendet wird. Zum Beispiel ist align=1 gleichbedeutend mit 0x00 (2^0), während align=4 gleichbedeutend mit 0x02 (2^2) ist.