This is an old revision of the document!
Lisez le tutorial a Mozilla Web Assembly Tutorial.
La documentation de Web Assembly est disponible a WebAssembly Semantics
On va utilizes la page pour Web Assembly a wat2wasm
Web Assembly est utilisé à partir de Javascript.
Pour la partie de Javascript, ecrivez le code suivante
const wasmInstance = new WebAssembly.Instance(wasmModule, { io:{ print: console.log } });
Un example de web assembly est:
(module
(import "io" "print" (func $print (param $s i32)))
(func $start
i32.const 120
call $print
)
(start $start)
)
int main () { return 0; }
(module
(func $start
)
(start $start)
)
int sum (int a, int b) { }
(module
(func $sum (param $a i32) (param $b i32) (result $res i32)
get_local $a
get_local $b
i32.add
return
)
)
int name () { int a; a = 0; return a; }
(module
(func $name (local $a i32) (result $res i32)
i32.const 0;
set_local $a
get_local $a
return
)
)
(module (import "io" "print" (func $print (param $n i32)) ;; use the print function i32.const 120 call $print )
if (a>b) { print (a); } else { print (b); }
;; import the print function get_local $a get_local $b i32.gt if get_local $a call $print else get_local $b call $print end
a=1; while (a<120) { print (a); a=a+1 }
;; import the print function
i32.const 0
set_local $a
block $endwhile
loop $while
get_local $a
i32.const 120
i32.gt
br_if $endwhile
get_local $a
call $print
get_local $a
i32.const 1
i32.add
set_local $a
br $while
end $while
end $endwhile
for (i=0; i<120; i++) { print (a); }
;; import the print function
i32.const 0
get_local $i
block $endfor
loop $for
get_local $i
i32.const 120
i32.gt
br_if $endfor
get_local $i
call $print
get_local $i
i32.const 1
i32.add
set_local $i
br $for
end $for
end $endfor
a=1; do { print (a); a=a+1 } while (a<=120);
;; import the print function i32.const 0 set_local $a loop $dowhile get_local $a call $print get_local $a i32.const 1 i32.add set_local $a get_local $a i32.const 120 i32.le br_if $dowhile end $dowhile