diff options
author | Frederick Yin <fkfd@fkfd.me> | 2022-08-16 11:54:23 +0800 |
---|---|---|
committer | Frederick Yin <fkfd@fkfd.me> | 2022-08-16 11:54:23 +0800 |
commit | 9542deeb483a00b6fabed7574720926ce97d7511 (patch) | |
tree | 0f2c1f72c03dd4693fd59df67544d2a4dddc5494 /projects/12/MathTest | |
parent | 9c0cb1d1c32724fc95ac9548e4f8d873d3adaccc (diff) |
Projects, 01-06 completed
Diffstat (limited to 'projects/12/MathTest')
-rw-r--r-- | projects/12/MathTest/Main.jack | 35 | ||||
-rw-r--r-- | projects/12/MathTest/MathTest.cmp | 2 | ||||
-rw-r--r-- | projects/12/MathTest/MathTest.tst | 15 |
3 files changed, 52 insertions, 0 deletions
diff --git a/projects/12/MathTest/Main.jack b/projects/12/MathTest/Main.jack new file mode 100644 index 0000000..de5cec2 --- /dev/null +++ b/projects/12/MathTest/Main.jack @@ -0,0 +1,35 @@ +// This file is part of www.nand2tetris.org
+// and the book "The Elements of Computing Systems"
+// by Nisan and Schocken, MIT Press.
+// File name: projects/12/MathTest/Main.jack
+
+/** Test program for the OS Math class. */
+class Main {
+
+ /** Performs various mathematical operations, using calls to the Math class methods. */
+ function void main() {
+ var Array r; // stores the test results;
+
+ let r = 8000;
+
+ let r[0] = 2 * 3; // 6
+ let r[1] = r[0] * (-30); // 6 * (-30) = -180
+ let r[2] = r[1] * 100; // (-180) * 100 = -18000
+ let r[3] = 1 * r[2]; // 1 * (-18000) = -18000
+ let r[4] = r[3] * 0; // 0
+
+ let r[5] = 9 / 3; // 3
+ let r[6] = (-18000) / 6; // -3000
+ let r[7] = 32766 / (-32767); // 0
+
+ let r[8] = Math.sqrt(9); // 3
+ let r[9] = Math.sqrt(32767); // 181
+
+ let r[10] = Math.min(345, 123); // 123
+ let r[11] = Math.max(123, -345); // 123
+ let r[12] = Math.abs(27); // 27
+ let r[13] = Math.abs(-32767); // 32767
+
+ return;
+ }
+}
diff --git a/projects/12/MathTest/MathTest.cmp b/projects/12/MathTest/MathTest.cmp new file mode 100644 index 0000000..703c1be --- /dev/null +++ b/projects/12/MathTest/MathTest.cmp @@ -0,0 +1,2 @@ +|RAM[8000]|RAM[8001]|RAM[8002]|RAM[8003]|RAM[8004]|RAM[8005]|RAM[8006]|RAM[8007]|RAM[8008]|RAM[8009]|RAM[8010]|RAM[8011]|RAM[8012]|RAM[8013]|
+| 6 | -180 | -18000 | -18000 | 0 | 3 | -3000 | 0 | 3 | 181 | 123 | 123 | 27 | 32767 |
diff --git a/projects/12/MathTest/MathTest.tst b/projects/12/MathTest/MathTest.tst new file mode 100644 index 0000000..127dbb4 --- /dev/null +++ b/projects/12/MathTest/MathTest.tst @@ -0,0 +1,15 @@ +// This file is part of www.nand2tetris.org
+// and the book "The Elements of Computing Systems"
+// by Nisan and Schocken, MIT Press.
+// File name: projects/12/MathTest/MathTest.tst
+
+load,
+output-file MathTest.out,
+compare-to MathTest.cmp,
+output-list RAM[8000]%D2.6.1 RAM[8001]%D2.6.1 RAM[8002]%D2.6.1 RAM[8003]%D2.6.1 RAM[8004]%D2.6.1 RAM[8005]%D2.6.1 RAM[8006]%D2.6.1 RAM[8007]%D2.6.1 RAM[8008]%D2.6.1 RAM[8009]%D2.6.1 RAM[8010]%D2.6.1 RAM[8011]%D2.6.1 RAM[8012]%D2.6.1 RAM[8013]%D2.6.1;
+
+repeat 1000000 {
+ vmstep;
+}
+
+output;
|