// add Class2.set 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END0)
@SP
A=M
M=D
@SP
M=M+1
// push argument 0
@0
D=A
@ARG
A=M+D
D=M
@SP
A=M
M=D
@SP
M=M+1
// pop static 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@.0
M=D
// push argument 1
@1
D=A
@ARG
A=M+D
D=M
@SP
A=M
M=D
@SP
M=M+1
// pop static 1
@SP
M=M-1
A=M
D=M
@R13
M=D
@.1
M=D
// push constant 0
@0
D=A
@SP
A=M
M=D
@SP
M=M+1
// add  0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END1)
@SP
A=M
M=D
@SP
M=M+1
// add Class2.get 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END2)
@SP
A=M
M=D
@SP
M=M+1
// push static 0
@.0
D=M
@SP
A=M
M=D
@SP
M=M+1
// push static 1
@.1
D=M
@SP
A=M
M=D
@SP
M=M+1
// sub  0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M-D
(END3)
@SP
A=M
M=D
@SP
M=M+1
// add  0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END4)
@SP
A=M
M=D
@SP
M=M+1
//   0
// add Class1.set 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END5)
@SP
A=M
M=D
@SP
M=M+1
// push argument 0
@0
D=A
@ARG
A=M+D
D=M
@SP
A=M
M=D
@SP
M=M+1
// pop static 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@.0
M=D
// push argument 1
@1
D=A
@ARG
A=M+D
D=M
@SP
A=M
M=D
@SP
M=M+1
// pop static 1
@SP
M=M-1
A=M
D=M
@R13
M=D
@.1
M=D
// push constant 0
@0
D=A
@SP
A=M
M=D
@SP
M=M+1
// add  0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END6)
@SP
A=M
M=D
@SP
M=M+1
// add Class1.get 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END7)
@SP
A=M
M=D
@SP
M=M+1
// push static 0
@.0
D=M
@SP
A=M
M=D
@SP
M=M+1
// push static 1
@.1
D=M
@SP
A=M
M=D
@SP
M=M+1
// sub  0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M-D
(END8)
@SP
A=M
M=D
@SP
M=M+1
// add  0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END9)
@SP
A=M
M=D
@SP
M=M+1
//   0
// add Sys.init 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END10)
@SP
A=M
M=D
@SP
M=M+1
// push constant 6
@6
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 8
@8
D=A
@SP
A=M
M=D
@SP
M=M+1
// add Class1.set 2
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END11)
@SP
A=M
M=D
@SP
M=M+1
// pop temp 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@R5
M=D
// push constant 23
@23
D=A
@SP
A=M
M=D
@SP
M=M+1
// push constant 15
@15
D=A
@SP
A=M
M=D
@SP
M=M+1
// add Class2.set 2
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END12)
@SP
A=M
M=D
@SP
M=M+1
// pop temp 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@R5
M=D
// add Class1.get 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END13)
@SP
A=M
M=D
@SP
M=M+1
// add Class2.get 0
@SP
M=M-1
A=M
D=M
@R13
M=D
@SP
M=M-1
A=M
D=M
@R14
M=D
@R13
D=M
@R14
D=M+D
(END14)
@SP
A=M
M=D
@SP
M=M+1
// label WHILE 0
(LWHILE)
// goto WHILE 0
@LWHILE
-1;JMP
//   0
