Rename example.wasm to test.wasm
This commit is contained in:
99
bin/test.wasm
Normal file
99
bin/test.wasm
Normal file
@@ -0,0 +1,99 @@
|
||||
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;
|
||||
|
||||
# Print 66 as decimal
|
||||
seti %A [$10];
|
||||
int $1;
|
||||
|
||||
seti %A $10; # newline
|
||||
int $0;
|
||||
|
||||
# Print 50 as hex (0x32)
|
||||
seti %A [$1024];
|
||||
int $2;
|
||||
|
||||
# Push the string "hell" into register A
|
||||
seti %A $108; # l
|
||||
shli %A $8 %A;
|
||||
addi %A $108 %A; # l
|
||||
shli %A $8 %A;
|
||||
addi %A $101 %A; # e
|
||||
shli %A $8 %A;
|
||||
addi %A $104 %A; # h
|
||||
|
||||
# Store A at memory location 900
|
||||
seti [$900] %A;
|
||||
|
||||
# Setup to print a string from position 900
|
||||
seti %A $900;
|
||||
seti %B $4;
|
||||
int $3;
|
||||
|
||||
# Jump over the interrupt
|
||||
call noop_function;
|
||||
int $3;
|
||||
jmp the_real_exit;
|
||||
|
||||
noop_function:
|
||||
ret;
|
||||
|
||||
the_real_exit:
|
||||
Reference in New Issue
Block a user