123 lines
1.1 KiB
NASM
123 lines
1.1 KiB
NASM
// push constant 111
|
|
@111
|
|
D = A
|
|
@SP
|
|
A = M
|
|
M = D
|
|
@SP
|
|
M = M + 1
|
|
|
|
// push constant 333
|
|
@333
|
|
D = A
|
|
@SP
|
|
A = M
|
|
M = D
|
|
@SP
|
|
M = M + 1
|
|
|
|
// push constant 888
|
|
@888
|
|
D = A
|
|
@SP
|
|
A = M
|
|
M = D
|
|
@SP
|
|
M = M + 1
|
|
|
|
// pop static StaticTest.8
|
|
@SP
|
|
A = M
|
|
A = A - 1
|
|
D = M
|
|
@SP
|
|
M = M - 1
|
|
// ^ pop into D
|
|
@StaticTest.8
|
|
M = D
|
|
// ^ StaticTest.8 = D
|
|
|
|
// pop static StaticTest.3
|
|
@SP
|
|
A = M
|
|
A = A - 1
|
|
D = M
|
|
@SP
|
|
M = M - 1
|
|
// ^ pop into D
|
|
@StaticTest.3
|
|
M = D
|
|
// ^ StaticTest.3 = D
|
|
|
|
// pop static StaticTest.1
|
|
@SP
|
|
A = M
|
|
A = A - 1
|
|
D = M
|
|
@SP
|
|
M = M - 1
|
|
// ^ pop into D
|
|
@StaticTest.1
|
|
M = D
|
|
// ^ StaticTest.1 = D
|
|
|
|
// push static StaticTest.3
|
|
@StaticTest.3
|
|
D = M
|
|
// ^ D = StaticTest.3
|
|
@SP
|
|
A = M
|
|
M = D
|
|
@SP
|
|
M = M + 1
|
|
// ^ push from D
|
|
|
|
// push static StaticTest.1
|
|
@StaticTest.1
|
|
D = M
|
|
// ^ D = StaticTest.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
|
|
|
|
// push static StaticTest.8
|
|
@StaticTest.8
|
|
D = M
|
|
// ^ D = StaticTest.8
|
|
@SP
|
|
A = M
|
|
M = D
|
|
@SP
|
|
M = M + 1
|
|
// ^ push from D
|
|
|
|
// add
|
|
@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
|
|
|