summaryrefslogtreecommitdiff
path: root/projects/07/StackArithmetic
diff options
context:
space:
mode:
Diffstat (limited to 'projects/07/StackArithmetic')
-rw-r--r--projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm19
-rw-r--r--projects/07/StackArithmetic/StackTest/StackTest.asm295
2 files changed, 314 insertions, 0 deletions
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