From 21c58570d3897f1f480b6cf6c572c350e7a0dd95 Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Mon, 22 Aug 2022 17:04:49 +0800 Subject: Output assembly files in project 07 --- projects/07/MemoryAccess/BasicTest/BasicTest.asm | 237 +++++++++++++++++ .../07/MemoryAccess/PointerTest/PointerTest.asm | 125 +++++++++ projects/07/MemoryAccess/StaticTest/StaticTest.asm | 70 +++++ .../07/StackArithmetic/SimpleAdd/SimpleAdd.asm | 19 ++ .../07/StackArithmetic/StackTest/StackTest.asm | 295 +++++++++++++++++++++ 5 files changed, 746 insertions(+) create mode 100644 projects/07/MemoryAccess/BasicTest/BasicTest.asm create mode 100644 projects/07/MemoryAccess/PointerTest/PointerTest.asm create mode 100644 projects/07/MemoryAccess/StaticTest/StaticTest.asm create mode 100644 projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm create mode 100644 projects/07/StackArithmetic/StackTest/StackTest.asm 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 -- cgit v1.2.3