-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTASK 5
More file actions
84 lines (81 loc) · 1.24 KB
/
TASK 5
File metadata and controls
84 lines (81 loc) · 1.24 KB
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
;*****************************************
; MDA-Win8086 EXPERIMENT PROGRAM *
; FILENAME : FND.ASM
; PROCESSOR : I8086
; 8255 TEST
;*****************************************
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
PPIC_C EQU 1FH
PPIC EQU 1DH
PPIB EQU 1BH
PPIA EQU 19H
KEY EQU 01H
;
ORG 1000H
MOV AL,10000000B
OUT PPIC_C,AL
;
MOV AL,11110000B
OUT PPIB,AL
;
MOV AL,00000000B
OUT PPIC,AL
;
L2: MOV SI,OFFSET DATA
CALL SCAN ; AL = KEY
MOV DX, AX
MOV BL , AL
CMP BL , 0
JE L2
LED : MOV AL , 11110100B
OUT PPIB , AL
CALL TIMER
MOV AL , 11110000B
OUT PPIB , AL
CALL TIMER
DEC BL
JNZ LED
ADD SI , DX
MOV AL,BYTE PTR CS:[SI]
OUT PPIA , AL
CALL TIMER
JMP L2
;
INT 3
;
TIMER: MOV CX,0
TIMER1: NOP
NOP
NOP
NOP
LOOP TIMER1
RET
;
DATA: DB 11000000B
DB 11111001B
DB 10100100B
DB 10110000B
DB 10011001B
DB 10010010B
DB 10000010B
DB 11111000B
DB 10000000B
DB 10010000B
DB 00H
SCAN: IN AL,KEY
TEST AL,10000000B
JNZ SCAN
TEST AL,00010000B
JNZ SCAN
;
AND AL,00001111B
MOV BYTE PTR K_BUF,AL
; key clear
OUT KEY,AL
RET
;
K_BUF: DB 1
CODE ENDS
END