138 lines
847 B
NASM
Executable File
138 lines
847 B
NASM
Executable File
(SimpleFunction.test)
|
|
@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
|
|
@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
|
|
@SP
|
|
M=M-1
|
|
A=M
|
|
D=M
|
|
A=A-1
|
|
M=M+D
|
|
//ADD
|
|
@SP
|
|
A=M
|
|
A=A-1
|
|
M=!M
|
|
//NOT
|
|
@0
|
|
D=A
|
|
@ARG
|
|
A=M+D
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1
|
|
//push ARGUMENT
|
|
@SP
|
|
M=M-1
|
|
A=M
|
|
D=M
|
|
A=A-1
|
|
M=M+D
|
|
//ADD
|
|
@1
|
|
D=A
|
|
@ARG
|
|
A=M+D
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1
|
|
//push ARGUMENT
|
|
@SP
|
|
M=M-1
|
|
A=M
|
|
D=M
|
|
A=A-1
|
|
M=M-D
|
|
//SUB
|
|
@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
|