summaryrefslogtreecommitdiff
path: root/projects/07
diff options
context:
space:
mode:
Diffstat (limited to 'projects/07')
-rw-r--r--projects/07/MemoryAccess/BasicTest/BasicTest.asm237
-rw-r--r--projects/07/MemoryAccess/PointerTest/PointerTest.asm125
-rw-r--r--projects/07/MemoryAccess/StaticTest/StaticTest.asm70
-rw-r--r--projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm19
-rw-r--r--projects/07/StackArithmetic/StackTest/StackTest.asm295
5 files changed, 746 insertions, 0 deletions
diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.asm b/projects/07/MemoryAccess/BasicTest/BasicTest.asm
new file mode 100644
index 0000000..3f567b8
--- /dev/null
+++ b/projects/07/MemoryAccess/BasicTest/BasicTest.asm
@@ -0,0 +1,237 @@
+@10
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@0
+D=A
+@LCL
+M=M+D
+@SP
+M=M-1
+A=M
+D=M
+@LCL
+A=M
+M=D
+@0
+D=A
+@LCL
+M=M-D
+@21
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@22
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@2
+D=A
+@ARG
+M=M+D
+@SP
+M=M-1
+A=M
+D=M
+@ARG
+A=M
+M=D
+@2
+D=A
+@ARG
+M=M-D
+@1
+D=A
+@ARG
+M=M+D
+@SP
+M=M-1
+A=M
+D=M
+@ARG
+A=M
+M=D
+@1
+D=A
+@ARG
+M=M-D
+@36
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@6
+D=A
+@THIS
+M=M+D
+@SP
+M=M-1
+A=M
+D=M
+@THIS
+A=M
+M=D
+@6
+D=A
+@THIS
+M=M-D
+@42
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@45
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@5
+D=A
+@THAT
+M=M+D
+@SP
+M=M-1
+A=M
+D=M
+@THAT
+A=M
+M=D
+@5
+D=A
+@THAT
+M=M-D
+@2
+D=A
+@THAT
+M=M+D
+@SP
+M=M-1
+A=M
+D=M
+@THAT
+A=M
+M=D
+@2
+D=A
+@THAT
+M=M-D
+@510
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@11
+M=D
+@LCL
+D=M
+@0
+A=D+A
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@THAT
+D=M
+@5
+A=D+A
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@SP
+A=M-1
+M=D+M
+@ARG
+D=M
+@1
+A=D+A
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@SP
+A=M-1
+M=M-D
+@THIS
+D=M
+@6
+A=D+A
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@THIS
+D=M
+@6
+A=D+A
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@SP
+A=M-1
+M=D+M
+@SP
+M=M-1
+A=M
+D=M
+@SP
+A=M-1
+M=M-D
+@11
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@SP
+A=M-1
+M=D+M
diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.asm b/projects/07/MemoryAccess/PointerTest/PointerTest.asm
new file mode 100644
index 0000000..9511e12
--- /dev/null
+++ b/projects/07/MemoryAccess/PointerTest/PointerTest.asm
@@ -0,0 +1,125 @@
+@3030
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@THIS
+M=D
+@3040
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@THAT
+M=D
+@32
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@2
+D=A
+@THIS
+M=M+D
+@SP
+M=M-1
+A=M
+D=M
+@THIS
+A=M
+M=D
+@2
+D=A
+@THIS
+M=M-D
+@46
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@6
+D=A
+@THAT
+M=M+D
+@SP
+M=M-1
+A=M
+D=M
+@THAT
+A=M
+M=D
+@6
+D=A
+@THAT
+M=M-D
+@THIS
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@THAT
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@SP
+A=M-1
+M=D+M
+@THIS
+D=M
+@2
+A=D+A
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@SP
+A=M-1
+M=M-D
+@THAT
+D=M
+@6
+A=D+A
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@SP
+A=M-1
+M=D+M
diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.asm b/projects/07/MemoryAccess/StaticTest/StaticTest.asm
new file mode 100644
index 0000000..48aaacd
--- /dev/null
+++ b/projects/07/MemoryAccess/StaticTest/StaticTest.asm
@@ -0,0 +1,70 @@
+@111
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@333
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@888
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+M=M-1
+A=M
+D=M
+@StaticTest.8
+M=D
+@SP
+M=M-1
+A=M
+D=M
+@StaticTest.3
+M=D
+@SP
+M=M-1
+A=M
+D=M
+@StaticTest.1
+M=D
+@StaticTest.3
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@StaticTest.1
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@StaticTest.8
+D=M
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm
new file mode 100644
index 0000000..71d9d8d
--- /dev/null
+++ b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm
@@ -0,0 +1,19 @@
+@7
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@8
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
diff --git a/projects/07/StackArithmetic/StackTest/StackTest.asm b/projects/07/StackArithmetic/StackTest/StackTest.asm
new file mode 100644
index 0000000..b0d944a
--- /dev/null
+++ b/projects/07/StackArithmetic/StackTest/StackTest.asm
@@ -0,0 +1,295 @@
+@17
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@17
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_EQ_0
+D;JNE
+@SP
+A=M-1
+M=-1
+(END_EQ_0)
+@17
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@16
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_EQ_1
+D;JNE
+@SP
+A=M-1
+M=-1
+(END_EQ_1)
+@16
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@17
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_EQ_2
+D;JNE
+@SP
+A=M-1
+M=-1
+(END_EQ_2)
+@892
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@891
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_LT_3
+D;JGE
+@SP
+A=M-1
+M=-1
+(END_LT_3)
+@891
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@892
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_LT_4
+D;JGE
+@SP
+A=M-1
+M=-1
+(END_LT_4)
+@891
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@891
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_LT_5
+D;JGE
+@SP
+A=M-1
+M=-1
+(END_LT_5)
+@32767
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@32766
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_GT_6
+D;JLE
+@SP
+A=M-1
+M=-1
+(END_GT_6)
+@32766
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@32767
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_GT_7
+D;JLE
+@SP
+A=M-1
+M=-1
+(END_GT_7)
+@32766
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@32766
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_GT_8
+D;JLE
+@SP
+A=M-1
+M=-1
+(END_GT_8)
+@57
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@31
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@53
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@112
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+A=M-1
+M=-M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@82
+D=A
+@SP
+A=M
+M=D
+@SP
+M=M+1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+A=M-1
+M=!M