Files
wassembly/bin/example.wasm

86 lines
1.0 KiB
Plaintext

DECLARE MEMORY_SIZE $4096;
addi $10 $-5 %A;
subi %A $2 %B;
muli $2 %B %C;
divi $2 %C %D;
# Set A to zero
seti %A $0;
# Loop from 0 to 10
count_loop:
addi $1 %A %A;
# Print the current value
int $1;
seti %B %A;
seti %A $32; # space
int $0;
seti %A %B;
lti %A $10;
jmp count_loop;
# Hello world
seti %A $72; # H
int $0;
seti %A $101; # e
int $0;
seti %A $108; # l
int $0;
int $0;
seti %A $111; # o
int $0;
seti %A $32; # space
int $0;
pushi $68; # D
pushi $76; # L
pushi $82; # R
pushi $79; # O
pushi $87; # W
seti %B $5;
world_loop:
popi %A;
int $0;
subi %B $1 %B;
gti %B $0;
jmp world_loop;
seti %A $10; # newline
int $0;
seti %B $1024;
seti [%B] $50;
seti %A $66;
seti [$10] %A;
seti %A [$10];
int $1;
seti %A $10; # newline
int $0;
seti %A [$1024];
int $1;
# Push the string "hell" into register A
seti %A $108;
shli %A $8 %A;
addi %A $108 %A;
shli %A $8 %A;
addi %A $101 %A;
shli %A $8 %A;
addi %A $104 %A;
# Store A at 900
seti [$900] %A;
# Setup to print a string from position 900
seti %A $900;
seti %B $4;
int $2;