Drop

drop 指令,从栈中弹出一个值,并丢弃它。

尝试一下

(module
  (import "console" "log" (func $log (param i32)))
  (func $main
    ;; 将两个值加载进栈中
    i32.const 10
    i32.const 20

    ;; 丢弃栈顶项(`20`)
    drop

    call $log ;; 打印栈顶值(`10`)
  )
  (start $main)
)
const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console });

语法

wat
;; 将多个值推入栈中
i32.const 1
i32.const 2
i32.const 3

;; 丢弃栈顶项(`3`)
drop

;; 现在栈顶项是 `2`
指令 二进制操作码
drop 0x1a