diff --git a/.gitignore b/.gitignore index f5625f9..339d536 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ njvm njvm.dSYM njvm.exe njvm2 -test diff --git a/test/.DS_Store b/test/.DS_Store new file mode 100644 index 0000000..72f5cfc Binary files /dev/null and b/test/.DS_Store differ diff --git a/test/tests/1.bin b/test/tests/1.bin new file mode 100644 index 0000000..cf5618f Binary files /dev/null and b/test/tests/1.bin differ diff --git a/test/tests/10.bin b/test/tests/10.bin new file mode 100644 index 0000000..6980fec Binary files /dev/null and b/test/tests/10.bin differ diff --git a/test/tests/11.bin b/test/tests/11.bin new file mode 100644 index 0000000..f4c6d21 Binary files /dev/null and b/test/tests/11.bin differ diff --git a/test/tests/12.bin b/test/tests/12.bin new file mode 100644 index 0000000..dc56b68 Binary files /dev/null and b/test/tests/12.bin differ diff --git a/test/tests/13.bin b/test/tests/13.bin new file mode 100644 index 0000000..1dcde1d Binary files /dev/null and b/test/tests/13.bin differ diff --git a/test/tests/2.bin b/test/tests/2.bin new file mode 100644 index 0000000..5a28cf7 Binary files /dev/null and b/test/tests/2.bin differ diff --git a/test/tests/3.bin b/test/tests/3.bin new file mode 100644 index 0000000..6c0e747 Binary files /dev/null and b/test/tests/3.bin differ diff --git a/test/tests/4.bin b/test/tests/4.bin new file mode 100644 index 0000000..7f4de9b Binary files /dev/null and b/test/tests/4.bin differ diff --git a/test/tests/5.bin b/test/tests/5.bin new file mode 100644 index 0000000..a05a804 Binary files /dev/null and b/test/tests/5.bin differ diff --git a/test/tests/6.bin b/test/tests/6.bin new file mode 100644 index 0000000..a772cb9 Binary files /dev/null and b/test/tests/6.bin differ diff --git a/test/tests/7.bin b/test/tests/7.bin new file mode 100644 index 0000000..3cab33b Binary files /dev/null and b/test/tests/7.bin differ diff --git a/test/tests/8.bin b/test/tests/8.bin new file mode 100644 index 0000000..1dcde1d Binary files /dev/null and b/test/tests/8.bin differ diff --git a/test/tests/9.bin b/test/tests/9.bin new file mode 100644 index 0000000..2dae6fe Binary files /dev/null and b/test/tests/9.bin differ diff --git a/test/tests/asf_rsfTest.asm b/test/tests/asf_rsfTest.asm new file mode 100644 index 0000000..5b0b5c2 --- /dev/null +++ b/test/tests/asf_rsfTest.asm @@ -0,0 +1,13 @@ + asf 5 + pushc 11 + call x + wrint + rsf + halt + +x: + asf 3 + pushc 22 + wrint + rsf + diff --git a/test/tests/bigMultiplication.asm b/test/tests/bigMultiplication.asm new file mode 100644 index 0000000..3c7283b --- /dev/null +++ b/test/tests/bigMultiplication.asm @@ -0,0 +1,125 @@ +// +// version +// + .vers 7 + +// +// execution framework +// +__start: + call _main + call _exit +__stop: + jmp __stop + +// +// Integer readInteger() +// +_readInteger: + asf 0 + rdint + popr + rsf + ret + +// +// void writeInteger(Integer) +// +_writeInteger: + asf 0 + pushl -3 + wrint + rsf + ret + +// +// Character readCharacter() +// +_readCharacter: + asf 0 + rdchr + popr + rsf + ret + +// +// void writeCharacter(Character) +// +_writeCharacter: + asf 0 + pushl -3 + wrchr + rsf + ret + +// +// Integer char2int(Character) +// +_char2int: + asf 0 + pushl -3 + popr + rsf + ret + +// +// Character int2char(Integer) +// +_int2char: + asf 0 + pushl -3 + popr + rsf + ret + +// +// void exit() +// +_exit: + asf 0 + halt + rsf + ret + +// +// void writeString(String) +// +_writeString: + asf 1 + pushc 0 + popl 0 + jmp _writeString_L2 +_writeString_L1: + pushl -3 + pushl 0 + getfa + call _writeCharacter + drop 1 + pushl 0 + pushc 1 + add + popl 0 +_writeString_L2: + pushl 0 + pushl -3 + getsz + lt + brt _writeString_L1 + rsf + ret + +// +// void main() +// +_main: + asf 0 + pushc 4421 + pushc 5743 + mul + pushc 7699 + mul + call _writeInteger + drop 1 +__0: + rsf + ret diff --git a/test/tests/bigint/bigIntTestAdd.asm b/test/tests/bigint/bigIntTestAdd.asm new file mode 100644 index 0000000..0d073d3 --- /dev/null +++ b/test/tests/bigint/bigIntTestAdd.asm @@ -0,0 +1,5 @@ +pushc 5 +pushc 4 +add +wrint +halt diff --git a/test/tests/bigint/bigIntTestDiv.asm b/test/tests/bigint/bigIntTestDiv.asm new file mode 100644 index 0000000..3e09353 --- /dev/null +++ b/test/tests/bigint/bigIntTestDiv.asm @@ -0,0 +1,5 @@ +pushc 5 +pushc 4 +div +wrint +halt diff --git a/test/tests/bigint/bigIntTestMod.asm b/test/tests/bigint/bigIntTestMod.asm new file mode 100644 index 0000000..1da6c29 --- /dev/null +++ b/test/tests/bigint/bigIntTestMod.asm @@ -0,0 +1,5 @@ +pushc 5 +pushc 4 +mod +wrint +halt diff --git a/test/tests/bigint/bigIntTestMul.asm b/test/tests/bigint/bigIntTestMul.asm new file mode 100644 index 0000000..71f95ec --- /dev/null +++ b/test/tests/bigint/bigIntTestMul.asm @@ -0,0 +1,5 @@ +pushc 5 +pushc 4 +mul +wrint +halt diff --git a/test/tests/bigint/bigIntTestSub.asm b/test/tests/bigint/bigIntTestSub.asm new file mode 100644 index 0000000..86f9575 --- /dev/null +++ b/test/tests/bigint/bigIntTestSub.asm @@ -0,0 +1,5 @@ +pushc 5 +pushc 4 +sub +wrint +halt diff --git a/test/tests/brfTest1.asm b/test/tests/brfTest1.asm new file mode 100644 index 0000000..46b40c2 --- /dev/null +++ b/test/tests/brfTest1.asm @@ -0,0 +1,16 @@ +pushc 3 +pushc 4 +eq +brf L1 + +pushc 4 + +L1: + pushc 7 + +wrint +pushc 10 +wrchr + +halt + diff --git a/test/tests/brfTest2.asm b/test/tests/brfTest2.asm new file mode 100644 index 0000000..b899239 --- /dev/null +++ b/test/tests/brfTest2.asm @@ -0,0 +1,17 @@ +pushc 4 +pushc 4 +eq +brf L1 + +pushc 6 +wrint +pushc 10 +wrchr +halt + +L1: + pushc 7 + wrint + pushc 10 + wrchr + halt diff --git a/test/tests/brtTest1.asm b/test/tests/brtTest1.asm new file mode 100644 index 0000000..dad2a0b --- /dev/null +++ b/test/tests/brtTest1.asm @@ -0,0 +1,19 @@ +pushc 3 +pushc 4 +eq +brt L1 + +pushc 5 +wrint +pushc 10 +wrchr +halt + +L1: + pushc 7 + +wrint +pushc 10 +wrchr +halt + diff --git a/test/tests/brtTest2.asm b/test/tests/brtTest2.asm new file mode 100644 index 0000000..7e50a7a --- /dev/null +++ b/test/tests/brtTest2.asm @@ -0,0 +1,17 @@ +pushc 4 +pushc 4 +eq +brt L1 + +pushc 6 +wrint +pushc 10 +wrchr +halt + +L1: + pushc 7 + wrint + pushc 10 + wrchr + halt diff --git a/test/tests/equalsTest.asm b/test/tests/equalsTest.asm new file mode 100644 index 0000000..3ab448c --- /dev/null +++ b/test/tests/equalsTest.asm @@ -0,0 +1,15 @@ +pushc 3 +pushc 4 +eq +wrint +pushc 10 +wrchr + +pushc 6 +pushc 6 +eq +wrint +pushc 10 +wrchr +halt + diff --git a/test/tests/greaterEqualsTest.asm b/test/tests/greaterEqualsTest.asm new file mode 100644 index 0000000..6d03a3f --- /dev/null +++ b/test/tests/greaterEqualsTest.asm @@ -0,0 +1,24 @@ +pushc 3 +pushc 4 +ge +wrint +pushc 10 +wrchr + + +pushc 8 +pushc 4 +ge +wrint +pushc 10 +wrchr + + +pushc 6 +pushc 6 +ge +wrint +pushc 10 +wrchr +halt + diff --git a/test/tests/greaterThanTest.asm b/test/tests/greaterThanTest.asm new file mode 100644 index 0000000..918b7b1 --- /dev/null +++ b/test/tests/greaterThanTest.asm @@ -0,0 +1,24 @@ +pushc 3 +pushc 4 +gt +wrint +pushc 10 +wrchr + + +pushc 8 +pushc 4 +gt +wrint +pushc 10 +wrchr + + +pushc 6 +pushc 6 +gt +wrint +pushc 10 +wrchr +halt + diff --git a/test/tests/jumpTest.asm b/test/tests/jumpTest.asm new file mode 100644 index 0000000..035149b --- /dev/null +++ b/test/tests/jumpTest.asm @@ -0,0 +1,19 @@ +pushc 3 +pushc 4 +wrint +pushc 10 +wrchr + + +pushc 3 +jmp L1 + +pushc 4 + +L1: + wrint + pushc 10 + wrchr + +halt + diff --git a/test/tests/lowerEqualsTest.asm b/test/tests/lowerEqualsTest.asm new file mode 100644 index 0000000..0397afe --- /dev/null +++ b/test/tests/lowerEqualsTest.asm @@ -0,0 +1,24 @@ +pushc 3 +pushc 4 +le +wrint +pushc 10 +wrchr + + +pushc 8 +pushc 4 +le +wrint +pushc 10 +wrchr + + +pushc 6 +pushc 6 +le +wrint +pushc 10 +wrchr +halt + diff --git a/test/tests/lowerThanTest.asm b/test/tests/lowerThanTest.asm new file mode 100644 index 0000000..9ff42ca --- /dev/null +++ b/test/tests/lowerThanTest.asm @@ -0,0 +1,24 @@ +pushc 3 +pushc 4 +lt +wrint +pushc 10 +wrchr + + +pushc 8 +pushc 4 +lt +wrint +pushc 10 +wrchr + + +pushc 6 +pushc 6 +lt +wrint +pushc 10 +wrchr +halt + diff --git a/test/tests/nja b/test/tests/nja new file mode 100755 index 0000000..6f65d5f Binary files /dev/null and b/test/tests/nja differ diff --git a/test/tests/notEqualsTest.asm b/test/tests/notEqualsTest.asm new file mode 100644 index 0000000..ff2ab5c --- /dev/null +++ b/test/tests/notEqualsTest.asm @@ -0,0 +1,15 @@ +pushc 3 +pushc 4 +ne +wrint +pushc 10 +wrchr + +pushc 6 +pushc 6 +ne +wrint +pushc 10 +wrchr +halt + diff --git a/test/tests/prog1.asm b/test/tests/prog1.asm new file mode 100644 index 0000000..46b40c2 --- /dev/null +++ b/test/tests/prog1.asm @@ -0,0 +1,16 @@ +pushc 3 +pushc 4 +eq +brf L1 + +pushc 4 + +L1: + pushc 7 + +wrint +pushc 10 +wrchr + +halt +