cyb/wysm/crates/cli/tests/wats/simple_print.wat

(module
    (import "wasi_snapshot_preview1" "fd_write" (func $fd_write 
        (param $fd i32) 
	    (param $iovec i32)
		(param $iovec_len i32)
		(param $size i32) 
        (result i32))
    )

    (memory (export "memory") 1)

    (data (i32.const 8) "Hello World\n")

    (func $main (export "")
        ;; create iovec
        (i32.store (i32.const 0) (i32.const 8))  ;; iovec base 
        (i32.store (i32.const 4) (i32.const 12))  ;; iovec length

        (call $fd_write
            (i32.const 1) ;; fd stdout
            (i32.const 0) ;; iovec list
            (i32.const 1) ;; iovec_len. 1 iovec here
            (i32.const 20) ;; size written 
        )
        drop ;; func main signature has nothing on stack. no return value, so we drop
    )

)

Graph