Add solutions for part 1

This commit is contained in:
2020-11-15 13:57:48 -05:00
parent e4f9fd2682
commit 742db6d102
479 changed files with 202980 additions and 13 deletions

View File

@@ -0,0 +1,122 @@
// push constant 111
@111
D = A
@SP
A = M
M = D
@SP
M = M + 1
// push constant 333
@333
D = A
@SP
A = M
M = D
@SP
M = M + 1
// push constant 888
@888
D = A
@SP
A = M
M = D
@SP
M = M + 1
// pop static StaticTest.8
@SP
A = M
A = A - 1
D = M
@SP
M = M - 1
// ^ pop into D
@StaticTest.8
M = D
// ^ StaticTest.8 = D
// pop static StaticTest.3
@SP
A = M
A = A - 1
D = M
@SP
M = M - 1
// ^ pop into D
@StaticTest.3
M = D
// ^ StaticTest.3 = D
// pop static StaticTest.1
@SP
A = M
A = A - 1
D = M
@SP
M = M - 1
// ^ pop into D
@StaticTest.1
M = D
// ^ StaticTest.1 = D
// push static StaticTest.3
@StaticTest.3
D = M
// ^ D = StaticTest.3
@SP
A = M
M = D
@SP
M = M + 1
// ^ push from D
// push static StaticTest.1
@StaticTest.1
D = M
// ^ D = StaticTest.1
@SP
A = M
M = D
@SP
M = M + 1
// ^ push from D
// sub
@SP
A = M
A = A - 1
A = A - 1
D = M
A = A + 1
D = D - M
A = A - 1
M = D
@SP
M = M - 1
// push static StaticTest.8
@StaticTest.8
D = M
// ^ D = StaticTest.8
@SP
A = M
M = D
@SP
M = M + 1
// ^ push from D
// add
@SP
A = M
A = A - 1
A = A - 1
D = M
A = A + 1
D = D + M
A = A - 1
M = D
@SP
M = M - 1

View File

@@ -0,0 +1,2 @@
|RAM[256]|
| 1110 |

View File

@@ -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/07/MemoryAccess/StaticTest/StaticTest.tst
load StaticTest.asm,
output-file StaticTest.out,
compare-to StaticTest.cmp,
output-list RAM[256]%D1.6.1;
set RAM[0] 256, // initializes the stack pointer
repeat 200 { // enough cycles to complete the execution
ticktock;
}
output; // the stack base

View File

@@ -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/07/MemoryAccess/StaticTest/StaticTest.vm
// Executes pop and push commands using the static segment.
push constant 111
push constant 333
push constant 888
pop static 8
pop static 3
pop static 1
push static 3
push static 1
sub
push static 8
add

View File

@@ -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/07/MemoryAccess/StaticTest/StaticTestVME.tst
load StaticTest.vm,
output-file StaticTest.out,
compare-to StaticTest.cmp,
output-list RAM[256]%D1.6.1;
set sp 256, // initializes the stack pointer
repeat 11 { // StaticTest.vm has 11 instructions
vmstep;
}
output; // the stack base