2020-06-02 11:34:51 +00:00
|
|
|
@3030 // push constant 3030
|
|
|
|
D=A
|
|
|
|
@SP
|
|
|
|
A=M
|
|
|
|
M=D
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M+1
|
2020-06-02 11:34:51 +00:00
|
|
|
@SP // pop
|
|
|
|
AM=M-1
|
|
|
|
D=M
|
|
|
|
@THIS
|
2020-06-04 15:35:02 +00:00
|
|
|
M=D //
|
2020-06-02 11:34:51 +00:00
|
|
|
@3040 // push constant 3040
|
|
|
|
D=A
|
|
|
|
@SP
|
|
|
|
A=M
|
|
|
|
M=D
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M+1
|
2020-06-02 11:34:51 +00:00
|
|
|
@SP // pop
|
|
|
|
AM=M-1
|
|
|
|
D=M
|
|
|
|
@THAT
|
2020-06-04 15:35:02 +00:00
|
|
|
M=D //
|
2020-06-02 11:34:51 +00:00
|
|
|
@32 // push constant 32
|
|
|
|
D=A
|
|
|
|
@SP
|
|
|
|
A=M
|
|
|
|
M=D
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M+1
|
2020-06-02 11:34:51 +00:00
|
|
|
@THIS // this 2
|
|
|
|
D=M
|
|
|
|
@2 // write 2 to A
|
|
|
|
D=D+A // D = segment+index
|
|
|
|
@R13 // save it to R13
|
|
|
|
M=D // write @THIS+2 to R13
|
|
|
|
@SP // pop
|
|
|
|
AM=M-1
|
|
|
|
D=M
|
|
|
|
@R13
|
|
|
|
A=M // Read @R13 to A (for this 2)
|
2020-06-04 15:35:02 +00:00
|
|
|
M=D // end pop this 2
|
2020-06-02 11:34:51 +00:00
|
|
|
@46 // push constant 46
|
|
|
|
D=A
|
|
|
|
@SP
|
|
|
|
A=M
|
|
|
|
M=D
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M+1
|
2020-06-02 11:34:51 +00:00
|
|
|
@THAT // that 6
|
|
|
|
D=M
|
|
|
|
@6 // write 6 to A
|
|
|
|
D=D+A // D = segment+index
|
|
|
|
@R13 // save it to R13
|
|
|
|
M=D // write @THAT+6 to R13
|
|
|
|
@SP // pop
|
|
|
|
AM=M-1
|
|
|
|
D=M
|
|
|
|
@R13
|
|
|
|
A=M // Read @R13 to A (for that 6)
|
2020-06-04 15:35:02 +00:00
|
|
|
M=D // end pop that 6
|
2020-06-02 11:34:51 +00:00
|
|
|
@THIS // pointer 0
|
|
|
|
D=M
|
|
|
|
@SP
|
|
|
|
A=M
|
|
|
|
M=D
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M+1
|
2020-06-02 11:34:51 +00:00
|
|
|
@THAT // pointer 1
|
|
|
|
D=M
|
|
|
|
@SP
|
|
|
|
A=M
|
|
|
|
M=D
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M+1
|
2020-06-02 11:34:51 +00:00
|
|
|
@SP // ==== add ====
|
|
|
|
A=M-1
|
|
|
|
D=M
|
|
|
|
A=A-1
|
|
|
|
M=D+M
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M-1 // end add
|
2020-06-02 11:34:51 +00:00
|
|
|
@THIS // this 2
|
|
|
|
D=M
|
|
|
|
@2 // write 2 to A
|
|
|
|
D=D+A // D = segment+index
|
|
|
|
@R13 // save it to R13
|
|
|
|
M=D // write @THIS+2 to R13
|
|
|
|
@R13
|
|
|
|
A=M
|
|
|
|
D=M
|
|
|
|
@SP
|
|
|
|
A=M
|
|
|
|
M=D
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M+1
|
2020-06-02 11:34:51 +00:00
|
|
|
@SP // ==== sub ====
|
|
|
|
A=M-1
|
|
|
|
D=M
|
|
|
|
A=A-1
|
|
|
|
M=M-D
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M-1 // end sub
|
2020-06-02 11:34:51 +00:00
|
|
|
@THAT // that 6
|
|
|
|
D=M
|
|
|
|
@6 // write 6 to A
|
|
|
|
D=D+A // D = segment+index
|
|
|
|
@R13 // save it to R13
|
|
|
|
M=D // write @THAT+6 to R13
|
|
|
|
@R13
|
|
|
|
A=M
|
|
|
|
D=M
|
|
|
|
@SP
|
|
|
|
A=M
|
|
|
|
M=D
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M+1
|
2020-06-02 11:34:51 +00:00
|
|
|
@SP // ==== add ====
|
|
|
|
A=M-1
|
|
|
|
D=M
|
|
|
|
A=A-1
|
|
|
|
M=D+M
|
|
|
|
@SP
|
2020-06-04 15:35:02 +00:00
|
|
|
M=M-1 // end add
|
2020-06-02 11:34:51 +00:00
|
|
|
@126
|
|
|
|
0;JMP
|