918 lines
13 KiB
NASM
918 lines
13 KiB
NASM
@99 // push constant 99
|
|
D=A
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push constant 99 (L0)
|
|
@98 // push constant 98
|
|
D=A
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push constant 98 (L1)
|
|
@97 // push constant 97
|
|
D=A
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push constant 97 (L2)
|
|
@96 // push constant 96
|
|
D=A
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push constant 96 (L3)
|
|
@95 // push constant 95
|
|
D=A
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push constant 95 (L4)
|
|
@94 // push constant 94
|
|
D=A
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push constant 94 (L5)
|
|
@93 // push constant 93
|
|
D=A
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push constant 93 (L6)
|
|
@92 // push constant 92
|
|
D=A
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push constant 92 (L7)
|
|
@91 // push constant 91
|
|
D=A
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push constant 91 (L8)
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@LCL
|
|
A=M // Read @LCL to A (for local 0)
|
|
M=D // end pop local 0 (L9)
|
|
@LCL // local 1
|
|
D=M
|
|
@1 // write 1 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+1 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for local 1)
|
|
M=D // end pop local 1 (L10)
|
|
@LCL // local 2
|
|
D=M
|
|
@2 // write 2 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+2 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for local 2)
|
|
M=D // end pop local 2 (L11)
|
|
@LCL // local 3
|
|
D=M
|
|
@3 // write 3 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+3 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for local 3)
|
|
M=D // end pop local 3 (L12)
|
|
@LCL // local 4
|
|
D=M
|
|
@4 // write 4 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+4 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for local 4)
|
|
M=D // end pop local 4 (L13)
|
|
@LCL // local 5
|
|
D=M
|
|
@5 // write 5 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+5 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for local 5)
|
|
M=D // end pop local 5 (L14)
|
|
@LCL // local 6
|
|
D=M
|
|
@6 // write 6 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+6 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for local 6)
|
|
M=D // end pop local 6 (L15)
|
|
@LCL // local 7
|
|
D=M
|
|
@7 // write 7 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+7 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for local 7)
|
|
M=D // end pop local 7 (L16)
|
|
@LCL // local 8
|
|
D=M
|
|
@8 // write 8 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+8 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for local 8)
|
|
M=D // end pop local 8 (L17)
|
|
@LCL // local 8
|
|
D=M
|
|
@8 // write 8 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+8 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push local 8 (L18)
|
|
@LCL // local 7
|
|
D=M
|
|
@7 // write 7 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+7 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push local 7 (L19)
|
|
@LCL // local 6
|
|
D=M
|
|
@6 // write 6 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+6 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push local 6 (L20)
|
|
@LCL // local 5
|
|
D=M
|
|
@5 // write 5 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+5 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push local 5 (L21)
|
|
@LCL // local 4
|
|
D=M
|
|
@4 // write 4 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+4 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push local 4 (L22)
|
|
@LCL // local 3
|
|
D=M
|
|
@3 // write 3 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+3 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push local 3 (L23)
|
|
@LCL // local 2
|
|
D=M
|
|
@2 // write 2 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+2 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push local 2 (L24)
|
|
@LCL // local 1
|
|
D=M
|
|
@1 // write 1 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @LCL+1 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push local 1 (L25)
|
|
@LCL
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push local 0 (L26)
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@ARG
|
|
A=M // Read @ARG to A (for argument 0)
|
|
M=D // end pop argument 0 (L27)
|
|
@ARG // argument 1
|
|
D=M
|
|
@1 // write 1 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+1 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for argument 1)
|
|
M=D // end pop argument 1 (L28)
|
|
@ARG // argument 2
|
|
D=M
|
|
@2 // write 2 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+2 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for argument 2)
|
|
M=D // end pop argument 2 (L29)
|
|
@ARG // argument 3
|
|
D=M
|
|
@3 // write 3 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+3 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for argument 3)
|
|
M=D // end pop argument 3 (L30)
|
|
@ARG // argument 4
|
|
D=M
|
|
@4 // write 4 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+4 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for argument 4)
|
|
M=D // end pop argument 4 (L31)
|
|
@ARG // argument 5
|
|
D=M
|
|
@5 // write 5 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+5 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for argument 5)
|
|
M=D // end pop argument 5 (L32)
|
|
@ARG // argument 6
|
|
D=M
|
|
@6 // write 6 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+6 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for argument 6)
|
|
M=D // end pop argument 6 (L33)
|
|
@ARG // argument 7
|
|
D=M
|
|
@7 // write 7 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+7 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for argument 7)
|
|
M=D // end pop argument 7 (L34)
|
|
@ARG // argument 8
|
|
D=M
|
|
@8 // write 8 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+8 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for argument 8)
|
|
M=D // end pop argument 8 (L35)
|
|
@ARG // argument 8
|
|
D=M
|
|
@8 // write 8 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+8 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push argument 8 (L36)
|
|
@ARG // argument 7
|
|
D=M
|
|
@7 // write 7 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+7 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push argument 7 (L37)
|
|
@ARG // argument 6
|
|
D=M
|
|
@6 // write 6 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+6 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push argument 6 (L38)
|
|
@ARG // argument 5
|
|
D=M
|
|
@5 // write 5 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+5 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push argument 5 (L39)
|
|
@ARG // argument 4
|
|
D=M
|
|
@4 // write 4 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+4 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push argument 4 (L40)
|
|
@ARG // argument 3
|
|
D=M
|
|
@3 // write 3 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+3 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push argument 3 (L41)
|
|
@ARG // argument 2
|
|
D=M
|
|
@2 // write 2 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+2 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push argument 2 (L42)
|
|
@ARG // argument 1
|
|
D=M
|
|
@1 // write 1 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @ARG+1 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push argument 1 (L43)
|
|
@ARG
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push argument 0 (L44)
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@THIS
|
|
A=M // Read @THIS to A (for this 0)
|
|
M=D // end pop this 0 (L45)
|
|
@THIS // this 1
|
|
D=M
|
|
@1 // write 1 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+1 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for this 1)
|
|
M=D // end pop this 1 (L46)
|
|
@THIS // this 2
|
|
D=M
|
|
@2 // write 2 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+2 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for this 2)
|
|
M=D // end pop this 2 (L47)
|
|
@THIS // this 3
|
|
D=M
|
|
@3 // write 3 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+3 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for this 3)
|
|
M=D // end pop this 3 (L48)
|
|
@THIS // this 4
|
|
D=M
|
|
@4 // write 4 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+4 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for this 4)
|
|
M=D // end pop this 4 (L49)
|
|
@THIS // this 5
|
|
D=M
|
|
@5 // write 5 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+5 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for this 5)
|
|
M=D // end pop this 5 (L50)
|
|
@THIS // this 6
|
|
D=M
|
|
@6 // write 6 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+6 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for this 6)
|
|
M=D // end pop this 6 (L51)
|
|
@THIS // this 7
|
|
D=M
|
|
@7 // write 7 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+7 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for this 7)
|
|
M=D // end pop this 7 (L52)
|
|
@THIS // this 8
|
|
D=M
|
|
@8 // write 8 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+8 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for this 8)
|
|
M=D // end pop this 8 (L53)
|
|
@THIS // this 8
|
|
D=M
|
|
@8 // write 8 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+8 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push this 8 (L54)
|
|
@THIS // this 7
|
|
D=M
|
|
@7 // write 7 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+7 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push this 7 (L55)
|
|
@THIS // this 6
|
|
D=M
|
|
@6 // write 6 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+6 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push this 6 (L56)
|
|
@THIS // this 5
|
|
D=M
|
|
@5 // write 5 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+5 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push this 5 (L57)
|
|
@THIS // this 4
|
|
D=M
|
|
@4 // write 4 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+4 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push this 4 (L58)
|
|
@THIS // this 3
|
|
D=M
|
|
@3 // write 3 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+3 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push this 3 (L59)
|
|
@THIS // this 2
|
|
D=M
|
|
@2 // write 2 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+2 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push this 2 (L60)
|
|
@THIS // this 1
|
|
D=M
|
|
@1 // write 1 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THIS+1 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push this 1 (L61)
|
|
@THIS
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push this 0 (L62)
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@THAT
|
|
A=M // Read @THAT to A (for that 0)
|
|
M=D // end pop that 0 (L63)
|
|
@THAT // that 1
|
|
D=M
|
|
@1 // write 1 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+1 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for that 1)
|
|
M=D // end pop that 1 (L64)
|
|
@THAT // that 2
|
|
D=M
|
|
@2 // write 2 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+2 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for that 2)
|
|
M=D // end pop that 2 (L65)
|
|
@THAT // that 3
|
|
D=M
|
|
@3 // write 3 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+3 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for that 3)
|
|
M=D // end pop that 3 (L66)
|
|
@THAT // that 4
|
|
D=M
|
|
@4 // write 4 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+4 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for that 4)
|
|
M=D // end pop that 4 (L67)
|
|
@THAT // that 5
|
|
D=M
|
|
@5 // write 5 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+5 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for that 5)
|
|
M=D // end pop that 5 (L68)
|
|
@THAT // that 6
|
|
D=M
|
|
@6 // write 6 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+6 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for that 6)
|
|
M=D // end pop that 6 (L69)
|
|
@THAT // that 7
|
|
D=M
|
|
@7 // write 7 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+7 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for that 7)
|
|
M=D // end pop that 7 (L70)
|
|
@THAT // that 8
|
|
D=M
|
|
@8 // write 8 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+8 to R13
|
|
@SP // pop
|
|
AM=M-1
|
|
D=M
|
|
@R13
|
|
A=M // Read @R13 to A (for that 8)
|
|
M=D // end pop that 8 (L71)
|
|
@THAT // that 8
|
|
D=M
|
|
@8 // write 8 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+8 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push that 8 (L72)
|
|
@THAT // that 7
|
|
D=M
|
|
@7 // write 7 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+7 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push that 7 (L73)
|
|
@THAT // that 6
|
|
D=M
|
|
@6 // write 6 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+6 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push that 6 (L74)
|
|
@THAT // that 5
|
|
D=M
|
|
@5 // write 5 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+5 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push that 5 (L75)
|
|
@THAT // that 4
|
|
D=M
|
|
@4 // write 4 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+4 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push that 4 (L76)
|
|
@THAT // that 3
|
|
D=M
|
|
@3 // write 3 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+3 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push that 3 (L77)
|
|
@THAT // that 2
|
|
D=M
|
|
@2 // write 2 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+2 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push that 2 (L78)
|
|
@THAT // that 1
|
|
D=M
|
|
@1 // write 1 to A
|
|
D=D+A // D = segment+index
|
|
@R13 // save it to R13
|
|
M=D // write @THAT+1 to R13
|
|
@R13
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push that 1 (L79)
|
|
@THAT
|
|
D=M
|
|
@SP
|
|
A=M
|
|
M=D
|
|
@SP
|
|
M=M+1 // end push that 0 (L80)
|
|
@916
|
|
0;JMP
|