Files
N2T/projects/08/FunctionCalls/StaticsTest/Class2.asm
2020-11-15 13:57:48 -05:00

107 lines
933 B
NASM

// Unsupported Function
// push argument 0
@0
D = A
@ARG
A = M
A = D + A
D = M
// ^ D = *(LCL + index)
@SP
A = M
M = D
@SP
M = M + 1
// ^ push D
// pop static Class2.0
@SP
A = M
A = A - 1
D = M
@SP
M = M - 1
// ^ pop into D
@Class2.0
M = D
// ^ Class2.0 = D
// push argument 1
@1
D = A
@ARG
A = M
A = D + A
D = M
// ^ D = *(LCL + index)
@SP
A = M
M = D
@SP
M = M + 1
// ^ push D
// pop static Class2.1
@SP
A = M
A = A - 1
D = M
@SP
M = M - 1
// ^ pop into D
@Class2.1
M = D
// ^ Class2.1 = D
// push constant 0
@0
D = A
@SP
A = M
M = D
@SP
M = M + 1
// Unsupported Return
// Unsupported Function
// push static Class2.0
@Class2.0
D = M
// ^ D = Class2.0
@SP
A = M
M = D
@SP
M = M + 1
// ^ push from D
// push static Class2.1
@Class2.1
D = M
// ^ D = Class2.1
@SP
A = M
M = D
@SP
M = M + 1
// ^ push from D
// sub
@SP
A = M
A = A - 1
A = A - 1
D = M
A = A + 1
D = D - M
A = A - 1
M = D
@SP
M = M - 1
// Unsupported Return