.
This commit is contained in:
+543
@@ -0,0 +1,543 @@
|
||||
(Sys.init)
|
||||
@4000
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@3
|
||||
M=D
|
||||
//pop POINTER
|
||||
@5000
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@4
|
||||
M=D
|
||||
//pop POINTER
|
||||
@Sys.main3RA
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
@LCL
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
@ARG
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
@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
|
||||
D=M
|
||||
@0
|
||||
D=D-A
|
||||
@5
|
||||
D=D-A
|
||||
@ARG
|
||||
M=D
|
||||
@SP
|
||||
D=M
|
||||
@LCL
|
||||
M=D
|
||||
@Sys.main
|
||||
0;JMP
|
||||
(Sys.main3RA)
|
||||
//CALLFUNC
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@6
|
||||
M=D
|
||||
//pop TMP
|
||||
(Sys.init$LOOP)
|
||||
//LABEL
|
||||
@Sys.init$LOOP
|
||||
0;JMP
|
||||
//GOTO
|
||||
(Sys.main)
|
||||
@0
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//DEFINEFUNC
|
||||
@0
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//DEFINEFUNC
|
||||
@0
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//DEFINEFUNC
|
||||
@0
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//DEFINEFUNC
|
||||
@0
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//DEFINEFUNC
|
||||
@4001
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@3
|
||||
M=D
|
||||
//pop POINTER
|
||||
@5001
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@4
|
||||
M=D
|
||||
//pop POINTER
|
||||
@200
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@1
|
||||
D=A
|
||||
@LCL
|
||||
M=M+D
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@LCL
|
||||
A=M
|
||||
M=D
|
||||
@1
|
||||
D=A
|
||||
@LCL
|
||||
M=M-D
|
||||
//pop LOCAL
|
||||
@40
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@2
|
||||
D=A
|
||||
@LCL
|
||||
M=M+D
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@LCL
|
||||
A=M
|
||||
M=D
|
||||
@2
|
||||
D=A
|
||||
@LCL
|
||||
M=M-D
|
||||
//pop LOCAL
|
||||
@6
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@3
|
||||
D=A
|
||||
@LCL
|
||||
M=M+D
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@LCL
|
||||
A=M
|
||||
M=D
|
||||
@3
|
||||
D=A
|
||||
@LCL
|
||||
M=M-D
|
||||
//pop LOCAL
|
||||
@123
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@Sys.add124RA
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
@LCL
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
@ARG
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
@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
|
||||
D=M
|
||||
@1
|
||||
D=D-A
|
||||
@5
|
||||
D=D-A
|
||||
@ARG
|
||||
M=D
|
||||
@SP
|
||||
D=M
|
||||
@LCL
|
||||
M=D
|
||||
@Sys.add12
|
||||
0;JMP
|
||||
(Sys.add124RA)
|
||||
//CALLFUNC
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@5
|
||||
M=D
|
||||
//pop TMP
|
||||
@0
|
||||
D=A
|
||||
@LCL
|
||||
A=M+D
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push LOCAL
|
||||
@1
|
||||
D=A
|
||||
@LCL
|
||||
A=M+D
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push LOCAL
|
||||
@2
|
||||
D=A
|
||||
@LCL
|
||||
A=M+D
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push LOCAL
|
||||
@3
|
||||
D=A
|
||||
@LCL
|
||||
A=M+D
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push LOCAL
|
||||
@4
|
||||
D=A
|
||||
@LCL
|
||||
A=M+D
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push LOCAL
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
A=A-1
|
||||
M=M+D
|
||||
//ADD
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
A=A-1
|
||||
M=M+D
|
||||
//ADD
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
A=A-1
|
||||
M=M+D
|
||||
//ADD
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
A=A-1
|
||||
M=M+D
|
||||
//ADD
|
||||
@LCL
|
||||
D=M
|
||||
@R13
|
||||
M=D
|
||||
@5
|
||||
D=A
|
||||
@R13
|
||||
D=M-D
|
||||
A=D
|
||||
D=M
|
||||
@R14
|
||||
M=D
|
||||
@SP
|
||||
A=M-1
|
||||
D=M
|
||||
@ARG
|
||||
A=M
|
||||
M=D
|
||||
@ARG
|
||||
D=M+1
|
||||
@SP
|
||||
M=D
|
||||
@R13
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@THAT
|
||||
M=D
|
||||
@R13
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@THIS
|
||||
M=D
|
||||
@R13
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@ARG
|
||||
M=D
|
||||
@R13
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@LCL
|
||||
M=D
|
||||
@R14
|
||||
A=M
|
||||
0;JMP
|
||||
//RETURN
|
||||
(Sys.add12)
|
||||
@4002
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@3
|
||||
M=D
|
||||
//pop POINTER
|
||||
@5002
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@4
|
||||
M=D
|
||||
//pop POINTER
|
||||
@0
|
||||
D=A
|
||||
@ARG
|
||||
A=M+D
|
||||
D=M
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push ARGUMENT
|
||||
@12
|
||||
D=A
|
||||
@SP
|
||||
A=M
|
||||
M=D
|
||||
@SP
|
||||
M=M+1
|
||||
//push CONSTANT
|
||||
@SP
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
A=A-1
|
||||
M=M+D
|
||||
//ADD
|
||||
@LCL
|
||||
D=M
|
||||
@R13
|
||||
M=D
|
||||
@5
|
||||
D=A
|
||||
@R13
|
||||
D=M-D
|
||||
A=D
|
||||
D=M
|
||||
@R14
|
||||
M=D
|
||||
@SP
|
||||
A=M-1
|
||||
D=M
|
||||
@ARG
|
||||
A=M
|
||||
M=D
|
||||
@ARG
|
||||
D=M+1
|
||||
@SP
|
||||
M=D
|
||||
@R13
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@THAT
|
||||
M=D
|
||||
@R13
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@THIS
|
||||
M=D
|
||||
@R13
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@ARG
|
||||
M=D
|
||||
@R13
|
||||
M=M-1
|
||||
A=M
|
||||
D=M
|
||||
@LCL
|
||||
M=D
|
||||
@R14
|
||||
A=M
|
||||
0;JMP
|
||||
//RETURN
|
||||
Reference in New Issue
Block a user