-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTraffic-light.ASM
449 lines (420 loc) · 7.29 KB
/
Traffic-light.ASM
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
A SEGMENT PARA PUBLIC 'CODE'
ASSUME CS: A
ORG 1000H
S:
MOV AL, 80H ;set control register
OUT 1FH, AL
MOV AL, 0FFH ;stop port A
OUT 19H, AL
L:
MOV AL, 01H ;turn Red LED on
OUT 1BH, AL
MOV CX, 0FFFFH ;delay for 1 second
;display 9 on seven segment
L1: LOOP L1
MOV AL, 090H ;display 9 on seven segment
OUT 19H, AL
MOV CX,0FFFFH ;delay for 1 second
LA: LOOP LA
MOV AL, 090H
OUT 19H, AL
MOV CX,0FFFFH
LA1: LOOP LA1
MOV AL, 090H
OUT 19H, AL
MOV CX,0FFFFH
;display 8 on seven segment
L2: LOOP L2
MOV AL, 0FFH ;turn off segment
OUT 19H, AL
MOV AL, 080H ;display 8 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L2A: LOOP L2A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 080H
OUT 19H, AL
MOV CX, 0FFFFH
L2B: LOOP L2B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 080H
OUT 19H, AL
MOV CX, 0FFFFH
;display 7 on seven segment
L3: LOOP L3
MOV AL, 0FFH ;turn off segment
OUT 19H, AL
MOV AL, 0D8H ;display 7 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L3A: LOOP L3A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0D8H
OUT 19H, AL
MOV CX, 0FFFFH
L3B: LOOP L3B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0D8H
OUT 19H, AL
MOV CX, 0FFFFH
;display 6 on seven segment
L4: LOOP L4
MOV AL, 0FFH ;turn off segment
OUT 19H, AL
MOV AL, 082H ;display 6 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L4A: LOOP L4A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 082H
OUT 19H, AL
MOV CX, 0FFFFH
L4B: LOOP L4B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 082H
OUT 19H, AL
MOV CX, 0FFFFH
;display 5 on seven segment
L5: LOOP L5
MOV AL, 0FFH ;turn off 7 segment
OUT 19H, AL
MOV AL, 092H ;display 5 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L5A: LOOP L5A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 092H
OUT 19H, AL
MOV CX, 0FFFFH
L5B: LOOP L5B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 092H
OUT 19H, AL
MOV CX, 0FFFFH
;display 4 on seven segment
L6: LOOP L6
MOV AL, 0FFH ;turn off 7 segment
OUT 19H, AL
MOV AL, 099H ;display 4 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L6A: LOOP L6A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 099H
OUT 19H, AL
MOV CX, 0FFFFH
L6B: LOOP L6B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 099H
OUT 19H, AL
MOV CX, 0FFFFH
;display 3 on seven segment
L7: LOOP L7
MOV AL, 0FFH ;turn off 7 segment
OUT 19H, AL
MOV AL, 0B0H ;display 3 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L7A: LOOP L7A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0B0H
OUT 19H, AL
MOV CX, 0FFFFH
L7B: LOOP L7B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0B0H
OUT 19H, AL
MOV CX, 0FFFFH
;display 2 on seven segment
L8: LOOP L8
MOV AL, 0FFH ;turn off 7 segment
OUT 19H, AL
MOV AL, 0A4H ;display 2 on seven segment
OUT 19H, AL
L8A: LOOP L8A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0A4H
OUT 19H, AL
L8B: LOOP L8B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0A4H
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
;display 1 on seven segment
L9: LOOP L9
MOV AL, 0FFH ;turn off 7 segment
OUT 19H, AL
MOV AL, 0F9H ;display 1 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L9A: LOOP L9A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0F9H
OUT 19H, AL
MOV CX, 0FFFFH
L9B: LOOP L9B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0F9H
OUT 19H, AL
MOV CX, 0FFFFH
;display 0 on seven segment
L10: LOOP L10
MOV AL, 0FFH ;turn off 7 segment
OUT 19H, AL
MOV AL, 0C0H ;display 0 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L10A: LOOP L10A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0C0H
OUT 19H, AL
MOV CX, 0FFFFH
L10B: LOOP L10B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0C0H
OUT 19H, AL
MOV CX, 0FFFFH
;turn on Red LED
L11: LOOP L11
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 00H ;turn off Red LED
OUT 1BH, AL
MOV CX, 0FFFFH ;delay for 1 second
;turn on Yellow LED
L12: LOOP L12
MOV AL, 04H
OUT 1BH, AL
L12A: LOOP L12A
MOV AL, 04H
OUT 1BH, AL
L12B: LOOP L12B
MOV AL, 04H
OUT 1BH, AL
L12C: LOOP L12C
MOV AL, 04H
OUT 1BH, AL
MOV CX, 0FFFFH ;delay for 1 second
;END
L13: LOOP L13
MOV AL, 00H ;turn off Yellow LED
OUT 1BH, AL
MOV CX, 0FFFFH
L14: LOOP L14
MOV AL, 02H ;turn on Green LED
OUT 1BH, AL
MOV CX, 0FFFFH
;display 9 on seven segment
L15: LOOP L15
MOV AL, 090H ;display 9 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L15A: LOOP L15A
MOV AL, 090H
OUT 19H, AL
MOV CX, 0FFFFH
L15B: LOOP L15B
MOV AL, 090H
OUT 19H, AL
MOV CX, 0FFFFH
;display 8 on seven segment
L16: LOOP L16
MOV AL, 0FFH ;turn off 7 segment display
OUT 19H, AL
MOV AL, 080H ;display 8 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L16A: LOOP L16A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 080H
OUT 19H, AL
MOV CX, 0FFFFH
L16B: LOOP L16B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 080H
OUT 19H, AL
MOV CX, 0FFFFH
;display 7 on seven segment
L17: LOOP L17
MOV AL, 0FFH ;turn off 7 segment display
OUT 19H, AL
MOV AL, 0D8H ;display 7 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L17A: LOOP L17A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0D8H
OUT 19H, AL
MOV CX, 0FFFFH
L17B: LOOP L17B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0D8H
OUT 19H, AL
MOV CX, 0FFFFH
;display 6 on seven segment
L18: LOOP L18
MOV AL, 0FFH ;turn off 7 segment display
OUT 19H, AL
MOV AL, 082H ;display 6 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L18A: LOOP L18A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 082H
OUT 19H, AL
MOV CX, 0FFFFH
L18B: LOOP L18B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 082H
OUT 19H, AL
MOV CX, 0FFFFH
;display 5 on seven segment
L19: LOOP L19
MOV AL, 0FFH ;turn off 7 segment display
OUT 19H, AL
MOV AL, 092H ;display 5 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L19A: LOOP L19A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 092H
OUT 19H, AL
MOV CX, 0FFFFH
L19B: LOOP L19B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 092H
OUT 19H, AL
MOV CX, 0FFFFH
;display 4 on seven segment
L20: LOOP L20
MOV AL, 0FFH ;turn off 7 segment display
OUT 19H, AL
MOV AL, 099H ;display 4 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L20A: LOOP L20A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 099H
OUT 19H, AL
MOV CX, 0FFFFH
L20B: LOOP L20B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 099H
OUT 19H, AL
MOV CX, 0FFFFH
;display 3 on seven segment
L21: LOOP L21
MOV AL, 0FFH ;turn off 7 segment display
OUT 19H, AL
MOV AL, 0B0H ;display 3 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L21A: LOOP L21A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0B0H
OUT 19H, AL
MOV CX, 0FFFFH
L21B: LOOP L21B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0B0H
OUT 19H, AL
MOV CX, 0FFFFH
;display 2 on seven segment
L22: LOOP L22
MOV AL, 0FFH ;turn off 7 segment display
OUT 19H, AL
MOV AL, 0A4H ;display 2 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L22A: LOOP L22A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0A4H
OUT 19H, AL
MOV CX, 0FFFFH
L22B: LOOP L22B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0A4H
OUT 19H, AL
MOV CX, 0FFFFH
;display 1 on seven segment
L23: LOOP L23
MOV AL, 0FFH ;turn off 7 segment display
OUT 19H, AL
MOV AL, 0F9H ;display 1 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH
L23A: LOOP L23A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0F9H
OUT 19H, AL
MOV CX, 0FFFFH
L23B: LOOP L23B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0F9H
OUT 19H, AL
MOV CX, 0FFFFH
;display 0 on seven segment
L24: LOOP L24
MOV AL, 0FFH ;turn off 7 segment display
OUT 19H, AL
MOV AL, 0C0H ;display 0 on seven segment
OUT 19H, AL
MOV CX, 0FFFFH ;delay for 1 second
L24A: LOOP L24A
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0C0H
OUT 19H, AL
MOV CX, 0FFFFH
L24B: LOOP L24B
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 0C0H
OUT 19H, AL
MOV CX, 0FFFFH
L45: LOOP L45
MOV AL, 0FFH
OUT 19H, AL
MOV AL, 00H ;turn off Red LED
OUT 1BH, AL
MOV AL, 01H
OUT 1BH, AL
MOV CX, 0FFFFH ;delay for 1 second
L46: LOOP L46
JMP L ;go back to start
A ENDS
END S