WebAssembly
From Lazarus wiki
Jump to navigationJump to searchThe printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Assemblers
There are different assemblers available, from Wabt and emscripten.org. The expected format is a slightly different between those two:
wat2wasm (Wabt)
Example:
(module (func $add (param $lhs i32) (param $rhs i32) (result i32) local.get $lhs local.get $rhs i32.add ) (export "add" (func $add)) )
According to the official site "Wabt" is using it's own format of the Wasm. It's slightly different from the official documentation. The most current version of Wabt matches the specs.
Online studio, that's using the older version of wabt syntax. https://webassembly.studio/
For example. instead of
memory.size
it's ussing
current_memory
wasm-as (emscripten)
The assembler is recommended for the use in a compiler by the WebAssembly.org
(module (func $add (param $lhs i32) (param $rhs i32) (result i32) ( local.get $lhs local.get $rhs i32.add ) ) (export "add" (func $add)) )
See Also
- https://webassembly.org/ - the official site
- https://webassembly.github.io/spec/core/text/index.html - text format (S-Expression) specs
- https://webassembly.github.io/spec/core/binary/index.html - binary format specs
- https://rsms.me/wasm-intro - introduction to webassembly