Skip to content

Commit

Permalink
project 7: test StackTest, find a bug:compare files not matched
Browse files Browse the repository at this point in the history
  • Loading branch information
OccupyMars2025 committed May 2, 2024
1 parent 7f6c460 commit a9f03e5
Show file tree
Hide file tree
Showing 6 changed files with 440 additions and 29 deletions.
345 changes: 345 additions & 0 deletions nand2tetris/projects/7/StackArithmetic/StackTest/StackTest.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,345 @@
// push constant 17
@17
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 17
@17
D=A
@SP
A=M
M=D
@SP
M=M+1
// eq
@SP
M=M-1
A=M
D=M
@SP
A=M-1
D=M-D
M=-1
@END_EQUAL_ID_25
D;JEQ
M=0
(END_EQUAL_ID_25)
// push constant 17
@17
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 16
@16
D=A
@SP
A=M
M=D
@SP
M=M+1
// eq
@SP
M=M-1
A=M
D=M
@SP
A=M-1
D=M-D
M=-1
@END_EQUAL_ID_54
D;JEQ
M=0
(END_EQUAL_ID_54)
// push constant 16
@16
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 17
@17
D=A
@SP
A=M
M=D
@SP
M=M+1
// eq
@SP
M=M-1
A=M
D=M
@SP
A=M-1
D=M-D
M=-1
@END_EQUAL_ID_83
D;JEQ
M=0
(END_EQUAL_ID_83)
// push constant 892
@892
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 891
@891
D=A
@SP
A=M
M=D
@SP
M=M+1
// lt
@SP
M=M-1
A=M
D=M
@SP
A=M-1
D=M-D
M=-1
@END_LT_ID_112
D;JLT
M=0
(END_LT_ID_112)
// push constant 891
@891
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 892
@892
D=A
@SP
A=M
M=D
@SP
M=M+1
// lt
@SP
M=M-1
A=M
D=M
@SP
A=M-1
D=M-D
M=-1
@END_LT_ID_141
D;JLT
M=0
(END_LT_ID_141)
// push constant 891
@891
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 891
@891
D=A
@SP
A=M
M=D
@SP
M=M+1
// lt
@SP
M=M-1
A=M
D=M
@SP
A=M-1
D=M-D
M=-1
@END_LT_ID_170
D;JLT
M=0
(END_LT_ID_170)
// push constant 32767
@32767
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 32766
@32766
D=A
@SP
A=M
M=D
@SP
M=M+1
// gt
@SP
M=M-1
A=M
D=M
@SP
A=M-1
D=M-D
M=-1
@END_GT_ID_199
D;JGT
M=0
(END_GT_ID_199)
// push constant 32766
@32766
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 32767
@32767
D=A
@SP
A=M
M=D
@SP
M=M+1
// gt
@SP
M=M-1
A=M
D=M
@SP
A=M-1
D=M-D
M=-1
@END_GT_ID_228
D;JGT
M=0
(END_GT_ID_228)
// push constant 32766
@32766
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 32766
@32766
D=A
@SP
A=M
M=D
@SP
M=M+1
// gt
@SP
M=M-1
A=M
D=M
@SP
A=M-1
D=M-D
M=-1
@END_GT_ID_257
D;JGT
M=0
(END_GT_ID_257)
// push constant 57
@57
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 31
@31
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 53
@53
D=A
@SP
A=M
M=D
@SP
M=M+1
// add
@SP
M=M-1
A=M
D=M
@SP
A=M-1
M=M+D
// push constant 112
@112
D=A
@SP
A=M
M=D
@SP
M=M+1
// sub
@SP
M=M-1
A=M
D=M
@SP
A=M-1
M=M-D
// neg
@SP
A=M-1
M=-M
// and
@SP
M=M-1
A=M
D=M
@SP
A=M-1
M=M&D
// push constant 82
@82
D=A
@SP
A=M
M=D
@SP
M=M+1
// or
@SP
M=M-1
A=M
D=M
@SP
A=M-1
M=M|D
// not
@SP
A=M-1
M=!M
// add an infinite loop to keep the program running
(END)
@END
0;JMP
Empty file.

0 comments on commit a9f03e5

Please sign in to comment.