copy: Wasm memory-Anweisung
Die memory.copy Speicheranweisung kopiert Daten von einem Bereich eines Speichers zu einem anderen.
Die Anweisung gibt keinen Wert zurück. Wenn entweder der Quell- oder Zielbereich außerhalb des gültigen Bereichs liegt, führt die Anweisung zu einem Fehler (trap).
Syntax
Kopieren innerhalb des Standardspeichers
wat
;; Copy data in default memory from [100, 125] to [50, 75]
i32.const 50 ;; Destination address to copy to
i32.const 100 ;; Source address to copy from
i32.const 25 ;; Number of bytes to copy
memory.copy ;; Copy memory
;; Copy in default memory using an S-expression
(memory.copy (i32.const 50) (i32.const 100) (i32.const 25))
Kopieren des angegebenen Speichers (wenn Multi-Memory unterstützt wird)
wat
;; Copy data within specific memory from [100, 125] to [50, 75]
i32.const 50 ;; Destination address to copy to
i32.const 100 ;; Source address to copy from
i32.const 25 ;; Number of bytes to copy
memory.copy (memory 2) (memory 2) ;; Copy memory within memory with index 2
;; Copy between memories referenced by their names
i32.const 50 ;; Destination address (in $destMem)
i32.const 100 ;; Source address (in $sourceMem)
i32.const 25 ;; Number of bytes to copy
memory.copy (memory $destMem) (memory $sourceMem) ;; Copy memory from "$sourceMem" to "$destMem"
;; Copy between memories using an S-expression
(memory.copy (memory $destMem) (memory $sourceMem) (i32.const 50) (i32.const 100) (i32.const 25))
Anweisungen und Opcodes
| Anweisung | Binärer Opcode |
|---|---|
memory.copy |
0xFC 0x0a |
Spezifikationen
| Spezifikation |
|---|
| WebAssembly Core Specification> # -hrefsyntax-instr-memorymathsfmemorycopyx_1x_2> |