// 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