diff options
Diffstat (limited to 'projects/07/StackArithmetic')
-rw-r--r-- | projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm | 19 | ||||
-rw-r--r-- | projects/07/StackArithmetic/StackTest/StackTest.asm | 295 |
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 |