br_if
Die br_if
-Anweisung verzweigt zu einer loop
-, einer block
- oder einer if
-Anweisung, basierend auf einer booleschen Bedingung (0
oder 1
).
Probieren Sie es aus
(module
;; Import the browser console object, which you'll need to pass in from JavaScript
(import "console" "log" (func $log (param i32)))
;; Create a global variable and initialize it to 0
(global $i (mut i32) (i32.const 0))
(func
(loop $my_loop
;; Add 1 to $i
global.get $i
i32.const 1
i32.add
global.set $i
;; Log the current value of $i
global.get $i
call $log
;; If $i is less than 10, branch to loop
global.get $i
i32.const 10
i32.lt_s
br_if $my_loop
)
)
(start 1) ;; Run the first function automatically
)
const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console });
Syntax
wat
;; Label the loop to enable branching to it later
(loop $my_loop
;; Add 1 (true) to the stack
i32.const 1
;; Branch to the loop if the top of the stack is 1
br_if $my_loop
)
Anweisung | Binärer Opcode |
---|---|
br_if |
0x0d |