1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// ----: push pointer 1 ----
@THAT
D=M
@SP
A=M
M=D
@SP
M=M+1
// ----: push constant 10 ----
@10
D=A
@SP
A=M
M=D
@SP
M=M+1
// ----: lt ----
// Arithmetic-logic
@SP
A=M-1
D=M
@SP
M=M-1
@R13
M=D
// ($lt)
@R13
D=M
@R14
D=D-M
@(TRUE)
D;JLT
@R15
M=0
(TRUE)
@R15
M=-1
@R15
D=M
@SP
A=M
M=D
@SP
M=M+1
// Infinite end loop
(END)
@END
0;JMP
// CC=X
// V=1.0.0