diff options
Diffstat (limited to 'projects/08/FunctionCalls/StaticsTest')
| -rw-r--r-- | projects/08/FunctionCalls/StaticsTest/Class1.vm | 20 | ||||
| -rw-r--r-- | projects/08/FunctionCalls/StaticsTest/Class2.vm | 20 | ||||
| -rw-r--r-- | projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp | 2 | ||||
| -rw-r--r-- | projects/08/FunctionCalls/StaticsTest/StaticsTest.tst | 17 | ||||
| -rw-r--r-- | projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst | 17 | ||||
| -rw-r--r-- | projects/08/FunctionCalls/StaticsTest/Sys.vm | 20 | 
6 files changed, 96 insertions, 0 deletions
diff --git a/projects/08/FunctionCalls/StaticsTest/Class1.vm b/projects/08/FunctionCalls/StaticsTest/Class1.vm new file mode 100644 index 0000000..c463537 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/Class1.vm @@ -0,0 +1,20 @@ +// 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/08/FunctionCalls/StaticsTest/Class1.vm
 +
 +// Stores two supplied arguments in static[0] and static[1].
 +function Class1.set 0
 +push argument 0
 +pop static 0
 +push argument 1
 +pop static 1
 +push constant 0
 +return
 +
 +// Returns static[0] - static[1].
 +function Class1.get 0
 +push static 0
 +push static 1
 +sub
 +return
 diff --git a/projects/08/FunctionCalls/StaticsTest/Class2.vm b/projects/08/FunctionCalls/StaticsTest/Class2.vm new file mode 100644 index 0000000..94f2946 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/Class2.vm @@ -0,0 +1,20 @@ +// 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/08/FunctionCalls/StaticsTest/Class2.vm
 +
 +// Stores two supplied arguments in static[0] and static[1].
 +function Class2.set 0
 +push argument 0
 +pop static 0
 +push argument 1
 +pop static 1
 +push constant 0
 +return
 +
 +// Returns static[0] - static[1].
 +function Class2.get 0
 +push static 0
 +push static 1
 +sub
 +return
 diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp b/projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp new file mode 100644 index 0000000..5589f1e --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp @@ -0,0 +1,2 @@ +| RAM[0] |RAM[261]|RAM[262]|
 +|    263 |     -2 |      8 |
 diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTest.tst b/projects/08/FunctionCalls/StaticsTest/StaticsTest.tst new file mode 100644 index 0000000..1b9194e --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/StaticsTest.tst @@ -0,0 +1,17 @@ +// 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/08/FunctionCalls/StaticsTest/StaticsTest.tst
 +
 +load StaticsTest.asm,
 +output-file StaticsTest.out,
 +compare-to StaticsTest.cmp,
 +output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1 RAM[262]%D1.6.1;
 +
 +set RAM[0] 256,
 +
 +repeat 2500 {
 +  ticktock;
 +}
 +
 +output;
 diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst b/projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst new file mode 100644 index 0000000..130ba66 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst @@ -0,0 +1,17 @@ +// 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/08/FunctionCalls/StaticsTest/StaticsTestVME.tst
 +
 +load,  // loads all the VM files from the current directory.
 +output-file StaticsTest.out,
 +compare-to StaticsTest.cmp,
 +output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1 RAM[262]%D1.6.1;
 +
 +set sp 261,
 +
 +repeat 36 {
 +  vmstep;
 +}
 +
 +output;
 diff --git a/projects/08/FunctionCalls/StaticsTest/Sys.vm b/projects/08/FunctionCalls/StaticsTest/Sys.vm new file mode 100644 index 0000000..3708322 --- /dev/null +++ b/projects/08/FunctionCalls/StaticsTest/Sys.vm @@ -0,0 +1,20 @@ +// 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/08/FunctionCalls/StaticsTest/Sys.vm
 +
 +// Tests that different functions, stored in two different 
 +// class files, manipulate the static segment correctly. 
 +function Sys.init 0
 +push constant 6
 +push constant 8
 +call Class1.set 2
 +pop temp 0 // Dumps the return value
 +push constant 23
 +push constant 15
 +call Class2.set 2
 +pop temp 0 // Dumps the return value
 +call Class1.get 0
 +call Class2.get 0
 +label WHILE
 +goto WHILE
  | 
