96 lines
731 B
NASM
96 lines
731 B
NASM
// Unsupported Function
|
|
|
|
// 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
|
|
|
|
// Unsupported Call
|
|
|
|
// pop temp 0
|
|
@0
|
|
D = A
|
|
@5
|
|
A = D + A
|
|
D = A
|
|
@R13
|
|
M = D
|
|
// ^ R13 = temp + index
|
|
@SP
|
|
A = M
|
|
A = A - 1
|
|
D = M
|
|
@SP
|
|
M = M - 1
|
|
// ^ pop into D
|
|
@R13
|
|
A = M
|
|
M = D
|
|
// ^ *R13 = 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
|
|
|
|
// Unsupported Call
|
|
|
|
// pop temp 0
|
|
@0
|
|
D = A
|
|
@5
|
|
A = D + A
|
|
D = A
|
|
@R13
|
|
M = D
|
|
// ^ R13 = temp + index
|
|
@SP
|
|
A = M
|
|
A = A - 1
|
|
D = M
|
|
@SP
|
|
M = M - 1
|
|
// ^ pop into D
|
|
@R13
|
|
A = M
|
|
M = D
|
|
// ^ *R13 = D
|
|
|
|
// Unsupported Call
|
|
|
|
// Unsupported Call
|
|
|
|
// label WHILE
|
|
(WHILE)
|
|
|
|
// goto WHILE
|
|
@WHILE
|
|
0;JMP
|
|
|