diff options
Diffstat (limited to 'projects/04/mult')
-rw-r--r-- | projects/04/mult/Mult.asm (renamed from projects/04/mult/mult.asm) | 26 | ||||
-rw-r--r-- | projects/04/mult/Mult.out | 7 | ||||
-rw-r--r-- | projects/04/mult/Mult.tst | 2 |
3 files changed, 33 insertions, 2 deletions
diff --git a/projects/04/mult/mult.asm b/projects/04/mult/Mult.asm index b44440a..50bbba0 100644 --- a/projects/04/mult/mult.asm +++ b/projects/04/mult/Mult.asm @@ -6,4 +6,28 @@ // 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 +// Put your code here.
+
+@i
+M=0
+@R2
+M=0
+
+(LOOP)
+@i
+M=M+1
+D=M
+@R0
+D=D-M
+@END
+D;JGT
+@R1
+D=M
+@R2
+M=M+D
+@LOOP
+0;JMP
+
+(END)
+@END
+0;JMP
diff --git a/projects/04/mult/Mult.out b/projects/04/mult/Mult.out new file mode 100644 index 0000000..e31b5df --- /dev/null +++ b/projects/04/mult/Mult.out @@ -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 | diff --git a/projects/04/mult/Mult.tst b/projects/04/mult/Mult.tst index f877664..9bf4fa8 100644 --- a/projects/04/mult/Mult.tst +++ b/projects/04/mult/Mult.tst @@ -3,7 +3,7 @@ // by Nisan and Schocken, MIT Press.
// File name: projects/04/mult/Mult.tst
-load Mult.hack,
+load Mult.asm,
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;
|