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 |