copy: Wasm 文本指令
**copy
** 是 内存指令,用于将数据从内存中的一个区域复制到另一个区域。
该指令不返回值。如果源范围或目标范围超出范围,则该指令会陷入陷阱。
语法
在默认内存中复制
wasm
;; 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-function
(memory.copy (i32.const 50) (i32.const 100) (i32.const 25))
复制指定的内存(如果支持多内存)
wasm
;; Copy data in specific memory [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) ;; Copy memory within memory with index 2
;; Copy within memory referenced by its name
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 $memoryName) ;; Copy memory with memory named "$memoryName"
;; Copy same memory using an S function
(memory.copy (memory $memoryName) (i32.const 50) (i32.const 100) (i32.const 25))
指令和操作码
指令 | 二进制操作码 |
---|---|
memory.copy |
0xFC 0x0A |
规范
规范 |
---|
未知规范 # syntax-instr-memory |
浏览器兼容性
BCD 表格仅在浏览器中加载
注意: Wasm 模块中的内存支持与 WebAssembly.Memory
JavaScript API 相匹配。 多内存 键指示可以在其中使用 copy
的版本。