From a000308104aab27c2dde9a306f1bc654b2db4806 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 29 Nov 2017 12:30:41 +0100 Subject: first commit --- projects/04/mult/Mult.cmp | 7 +++++ projects/04/mult/Mult.tst | 74 +++++++++++++++++++++++++++++++++++++++++++++++ projects/04/mult/mult.asm | 9 ++++++ 3 files changed, 90 insertions(+) create mode 100644 projects/04/mult/Mult.cmp create mode 100644 projects/04/mult/Mult.tst create mode 100644 projects/04/mult/mult.asm (limited to 'projects/04/mult') diff --git a/projects/04/mult/Mult.cmp b/projects/04/mult/Mult.cmp new file mode 100644 index 0000000..296b5fb --- /dev/null +++ b/projects/04/mult/Mult.cmp @@ -0,0 +1,7 @@ +| RAM[0] | RAM[1] | RAM[2] | +| 0 | 0 | 0 | +| 1 | 0 | 0 | +| 0 | 2 | 0 | +| 3 | 1 | 3 | +| 2 | 4 | 8 | +| 6 | 7 | 42 | \ No newline at end of file diff --git a/projects/04/mult/Mult.tst b/projects/04/mult/Mult.tst new file mode 100644 index 0000000..f877664 --- /dev/null +++ b/projects/04/mult/Mult.tst @@ -0,0 +1,74 @@ +// 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/04/mult/Mult.tst + +load Mult.hack, +output-file Mult.out, +compare-to Mult.cmp, +output-list RAM[0]%D2.6.2 RAM[1]%D2.6.2 RAM[2]%D2.6.2; + +set RAM[0] 0, // Set test arguments +set RAM[1] 0, +set RAM[2] -1; // Test that program initialized product to 0 +repeat 20 { + ticktock; +} +set RAM[0] 0, // Restore arguments in case program used them as loop counter +set RAM[1] 0, +output; + +set PC 0, +set RAM[0] 1, // Set test arguments +set RAM[1] 0, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 50 { + ticktock; +} +set RAM[0] 1, // Restore arguments in case program used them as loop counter +set RAM[1] 0, +output; + +set PC 0, +set RAM[0] 0, // Set test arguments +set RAM[1] 2, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 80 { + ticktock; +} +set RAM[0] 0, // Restore arguments in case program used them as loop counter +set RAM[1] 2, +output; + +set PC 0, +set RAM[0] 3, // Set test arguments +set RAM[1] 1, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 120 { + ticktock; +} +set RAM[0] 3, // Restore arguments in case program used them as loop counter +set RAM[1] 1, +output; + +set PC 0, +set RAM[0] 2, // Set test arguments +set RAM[1] 4, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 150 { + ticktock; +} +set RAM[0] 2, // Restore arguments in case program used them as loop counter +set RAM[1] 4, +output; + +set PC 0, +set RAM[0] 6, // Set test arguments +set RAM[1] 7, +set RAM[2] -1; // Ensure that program initialized product to 0 +repeat 210 { + ticktock; +} +set RAM[0] 6, // Restore arguments in case program used them as loop counter +set RAM[1] 7, +output; diff --git a/projects/04/mult/mult.asm b/projects/04/mult/mult.asm new file mode 100644 index 0000000..b44440a --- /dev/null +++ b/projects/04/mult/mult.asm @@ -0,0 +1,9 @@ +// 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/04/Mult.asm + +// Multiplies R0 and R1 and stores the result in R2. +// (R0, R1, R2 refer to RAM[0], RAM[1], and RAM[2], respectively.) + +// Put your code here. \ No newline at end of file -- cgit v1.2.3