From 9542deeb483a00b6fabed7574720926ce97d7511 Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Tue, 16 Aug 2022 11:54:23 +0800 Subject: Projects, 01-06 completed --- projects/07/MemoryAccess/BasicTest/BasicTest.cmp | 2 ++ projects/07/MemoryAccess/BasicTest/BasicTest.tst | 25 +++++++++++++++++ projects/07/MemoryAccess/BasicTest/BasicTest.vm | 31 ++++++++++++++++++++++ .../07/MemoryAccess/BasicTest/BasicTestVME.tst | 25 +++++++++++++++++ 4 files changed, 83 insertions(+) create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTest.cmp create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTest.tst create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTest.vm create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTestVME.tst (limited to 'projects/07/MemoryAccess/BasicTest') diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.cmp b/projects/07/MemoryAccess/BasicTest/BasicTest.cmp new file mode 100644 index 0000000..538454b --- /dev/null +++ b/projects/07/MemoryAccess/BasicTest/BasicTest.cmp @@ -0,0 +1,2 @@ +|RAM[256]|RAM[300]|RAM[401]|RAM[402]|RAM[3006|RAM[3012|RAM[3015|RAM[11] | +| 472 | 10 | 21 | 22 | 36 | 42 | 45 | 510 | diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.tst b/projects/07/MemoryAccess/BasicTest/BasicTest.tst new file mode 100644 index 0000000..fa6d9a6 --- /dev/null +++ b/projects/07/MemoryAccess/BasicTest/BasicTest.tst @@ -0,0 +1,25 @@ +// 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/07/MemoryAccess/BasicTest/BasicTest.tst + +load BasicTest.asm, +output-file BasicTest.out, +compare-to BasicTest.cmp, +output-list RAM[256]%D1.6.1 RAM[300]%D1.6.1 RAM[401]%D1.6.1 + RAM[402]%D1.6.1 RAM[3006]%D1.6.1 RAM[3012]%D1.6.1 + RAM[3015]%D1.6.1 RAM[11]%D1.6.1; + +set RAM[0] 256, // stack pointer +set RAM[1] 300, // base address of the local segment +set RAM[2] 400, // base address of the argument segment +set RAM[3] 3000, // base address of the this segment +set RAM[4] 3010, // base address of the that segment + +repeat 600 { // enough cycles to complete the execution + ticktock; +} + +// Outputs the stack base and some values +// from the tested memory segments +output; diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.vm b/projects/07/MemoryAccess/BasicTest/BasicTest.vm new file mode 100644 index 0000000..b2f9343 --- /dev/null +++ b/projects/07/MemoryAccess/BasicTest/BasicTest.vm @@ -0,0 +1,31 @@ +// 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/07/MemoryAccess/BasicTest/BasicTest.vm + +// Executes pop and push commands using the virtual memory segments. +push constant 10 +pop local 0 +push constant 21 +push constant 22 +pop argument 2 +pop argument 1 +push constant 36 +pop this 6 +push constant 42 +push constant 45 +pop that 5 +pop that 2 +push constant 510 +pop temp 6 +push local 0 +push that 5 +add +push argument 1 +sub +push this 6 +push this 6 +add +sub +push temp 6 +add diff --git a/projects/07/MemoryAccess/BasicTest/BasicTestVME.tst b/projects/07/MemoryAccess/BasicTest/BasicTestVME.tst new file mode 100644 index 0000000..24e9090 --- /dev/null +++ b/projects/07/MemoryAccess/BasicTest/BasicTestVME.tst @@ -0,0 +1,25 @@ +// 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/07/MemoryAccess/BasicTest/BasicTestVME.tst + +load BasicTest.vm, +output-file BasicTest.out, +compare-to BasicTest.cmp, +output-list RAM[256]%D1.6.1 RAM[300]%D1.6.1 RAM[401]%D1.6.1 + RAM[402]%D1.6.1 RAM[3006]%D1.6.1 RAM[3012]%D1.6.1 + RAM[3015]%D1.6.1 RAM[11]%D1.6.1; + +set sp 256, // stack pointer +set local 300, // base address of the local segment +set argument 400, // base address of the argument segment +set this 3000, // base address of the this segment +set that 3010, // base address of the that segment + +repeat 25 { // BasicTest.vm has 25 instructions + vmstep; +} + +// Outputs the stack base and some values +// from the tested memory segments +output; -- cgit v1.2.3