1 VD: NHÂN
2 .ORIG X3000 ; chuong trinh bat dau o nho x3000
3
4 AND R3, R3, #0 ; lenh xoa thanh ghi
5 ADD R4, R3, #1 ; R4 bat dau tu 1 -> de tao chu so hang chuc
6 LD R5, ASCII ; "ASCII" -> R5
7 LD R6, NEGASCII ; "NEGASCII" -> R6
8
9 TRAP X23 ; lenh de nhap so thu nhat -> R1
10 ADD R1, R6, R0 ; cong voi R6 de dua ve he thap phan
11
12 TRAP X23 ; lenh de nhap so thu hai -> R2
13 ADD R2, R6, R0 ;
14 BRZ NEXT1 ; neu R2 = 0 -> "NEXT1"
15 ADD R0, R1, #0 ;
16 BRZ NEXT1 ; neu R1 = 0 -> "NEXT1"
17
18 LOOP ADD R3, R1, R3 ; cong so thu nhat (R1) vao R3 -> phep nhan duoc
19 tinh bang so lan cong
20 ADD R2, R2, #-1 ; so thu hai tru di mot lan
21 BRz NEXT2 ; neu so thu 2 ve 0 (R2 = 0) -> "NEXT2"
22 BR LOOP ; re nhanh khong dieu kien de tro lai vong lap
23
24 NEXT1 LEA R0, MESG ;
25 TRAP X22 ; nhom lenh xuat chuoi "MESG"
26 HALT ; lenh ket thuc chuong trinh
27
28 NEXT2 ADD R2, R3, #-10 ; hieu voi 10 de kiem tra tich co be hon 1o ko
29 BRN FIN1 ; am -> xuat ket qua luon -> "FIN1"
30
31 LO0P2 ADD R2, R2, #-10 ; hieu voi 10 de dem co bao nhieu o hang chuc
32 BRN FIN2 ; dem du -> thoat vong lap
33 ADD R4, R4, #1 ; chu so hang chuc + them 1
34 BR LO0P2 ; lap lai LOOP2
35
36 FIN1 LEA R0, MESG1 ;
37 TRAP X22 ; nhom lenh xuat chuoi "MESG1"
38 ADD R0, R3, R5 ; ket qua = R3 -> doi sang ma Ascii
39 TRAP X21 ; xuat
40 HALT ; ket thuc chuong trinh
41
42 FIN2 LEA R0, MESG1 ;
43 TRAP X22 ; nhom lenh xuat chuoi "MESG1"
44 ADD R0, R5, R4 ; dua R4 ve ma Ascii
45 TRAP X21 ; xuat hang chuc (R4)
46 ADD R0, R2, #10 ; R2 cong 10 -> hang don vi
47 ADD R0, R0, R5 ; R2 -> ma Ascii
48 TRAP X21 ; xuat hang don vi
49 HALT ; ket thuc chuong trinh
50
51 ASCII .FILL X30 ; hang so dua he thap phan -> ma Ascii
52 NEGASCII .FILL xFFD0 ; hang so dua ma Ascii -> he thap phan
53 MESG .STRINGZ "Tich 2 so la: 0" ;
54 MESG1 .STRINGZ "Tich 2 so la: " ; chuoi
55
56 .END ; khong con lenh nao sau lenh nay
57