Một chương trình gồm n dòng lệnh, được đánh số thực thi từ 0 đến n−1 theo thứ tự xuất hiện. Mỗi dòng có thể có một nhãn đứng trước dạng NHAN: (nhãn gồm chữ và số, không chứa khoảng trắng), theo sau là lệnh; hoặc không có nhãn. Các lệnh gồm:
SET x k: gán biến nguyên x bằng hằng số k.ADD x y z: gán x=y+z (giá trị của các biến y,z).SUB x y z: gán x=y−z.JMP L: nhảy tới dòng có nhãn L.JZ x L: nếu biến x bằng 0 thì nhảy tới nhãn L, ngược lại thực thi tiếp dòng kế tiếp.PRINT x: in giá trị hiện tại của biến x trên một dòng.HALT: dừng chương trình ngay lập tức.Biến chưa được gán có giá trị mặc định là 0. Chương trình bắt đầu chạy từ dòng đầu tiên; nếu chạy hết n dòng mà chưa gặp HALT thì dừng. Đề đảm bảo chương trình luôn dừng sau không quá 106 bước thực thi.
Ví dụ: chương trình đếm ngược in ra 3, 2, 1 rồi dừng:
SET n 3
loop: JZ n end
PRINT n
SET one 1
SUB n n one
JMP loop
end: HALT
Dòng đầu chứa số nguyên n (0≤n≤1000). n dòng tiếp theo là các dòng lệnh của chương trình (có thể có tiền tố nhãn NHAN: ngăn cách với lệnh bởi một khoảng trắng).
In ra các giá trị được lệnh PRINT tạo ra, theo đúng thứ tự thực thi, mỗi giá trị trên một dòng. Nếu không có lệnh PRINT nào được thực thi, không in gì cả.
Ví dụ:
Đầu vào:
7
SET n 3
loop: JZ n end
PRINT n
SET one 1
SUB n n one
JMP loop
end: HALT
Đầu ra:
3
2
1
Đầu vào:
0
Đầu ra:
Đang tải editor...