或
or 指令用于执行按位 OR 操作,类似于其他语言中的 | 运算符。
试一试
(module
(func (export "or") (param $a i32) (param $b i32) (result i32)
;; load both numbers onto the stack
local.get $a
local.get $b
;; `or` both numbers and return the result
i32.or
)
)
const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console }).then(
(result) => {
const or = result.instance.exports.or;
const res = or(0b10000010, 0b01101111);
console.log(numToBin(res));
// Expected output: "11101111"
},
);
function numToBin(num) {
return (num >>> 0).toString(2).padStart(8, "0");
}
语法
wat
;; load two numbers onto the stack
i32.const 5 ;; 00000101
i32.const 3 ;; 00000011
;; perform a bitwise OR
i32.or
;; the top item on the stack will now be 7 (00000111)
| 指令 | 二进制操作码 |
|---|---|
i32.or |
0x72 |
i64.or |
0x84 |