first commit
This commit is contained in:
192
Lab/Lab5/material/code.LST
Executable file
192
Lab/Lab5/material/code.LST
Executable file
@@ -0,0 +1,192 @@
|
||||
Turbo Assembler Version 5.3 06-02-23 10:20:14 Page 1
|
||||
code.asm
|
||||
|
||||
|
||||
|
||||
1 0000 DATA SEGMENT
|
||||
2 0000 0000 INT_OFF1 DW 0
|
||||
3 0002 0000 INT_SEG1 DW 0
|
||||
4 0004 0000 INT_OFF2 DW 0
|
||||
5 0006 0000 INT_SEG2 DW 0
|
||||
6 0008 0001 LED_STATE DW 00000001B
|
||||
7 000A DATA ENDS
|
||||
8
|
||||
9 0000 STACK SEGMENT
|
||||
*Warning* code.asm(9) Reserved word used as symbol: STACK
|
||||
10 0000 64*(0000) DW 100 DUP (0)
|
||||
11 00C8 STACK ENDS
|
||||
12
|
||||
13 0000 CODE SEGMENT
|
||||
14 ASSUME CS:CODE, DS:DATA, SS:STACK
|
||||
15 0000 START:
|
||||
16 0000 B8 0000s MOV AX, DATA
|
||||
17 0003 8E D8 MOV DS, AX
|
||||
18 0005 8E C0 MOV ES, AX
|
||||
19 0007 B8 0000s MOV AX, STACK
|
||||
20 000A 8E D0 MOV SS, AX
|
||||
21
|
||||
22 ; save main chip's original interruption vector
|
||||
23 000C B8 350B MOV AX, 350BH
|
||||
24 000F CD 21 INT 21H
|
||||
25 0011 89 1E 0000r MOV INT_OFF1, BX
|
||||
26 0015 8C C3 MOV BX, ES
|
||||
27 0017 89 1E 0002r MOV INT_SEG1, BX
|
||||
28
|
||||
29 ; load main chip's new interruption vector
|
||||
30 001B FA CLI
|
||||
31 001C BA 0000s MOV DX, SEG SW_INT
|
||||
32 001F 8E DA MOV DS, DX
|
||||
33 0021 BA 00ADr MOV DX, OFFSET SW_INT
|
||||
34 0024 B8 250B MOV AX, 250BH
|
||||
35 0027 CD 21 INT 21H
|
||||
36 0029 B8 0000s MOV AX, DATA
|
||||
37 002C 8E D8 MOV DS, AX
|
||||
38
|
||||
39 ; save slave chip's original interruption vector
|
||||
40 002E B8 3572 MOV AX, 3572H
|
||||
41 0031 CD 21 INT 21H
|
||||
42 0033 89 1E 0004r MOV INT_OFF2, BX
|
||||
43 0037 8C C3 MOV BX, ES
|
||||
44 0039 89 1E 0006r MOV INT_SEG2, BX
|
||||
45
|
||||
46 ; load slave chip's new interruption vector
|
||||
47 003D FA CLI
|
||||
48 003E BA 0000s MOV DX, SEG SW_INT
|
||||
49 0041 8E DA MOV DS, DX
|
||||
50 0043 BA 00ADr MOV DX, OFFSET SW_INT
|
||||
51 0046 B8 2572 MOV AX, 2572H
|
||||
52 0049 CD 21 INT 21H
|
||||
53 004B B8 0000s MOV AX, DATA
|
||||
54 004E 8E D8 MOV DS, AX
|
||||
55
|
||||
56 ; open main chip's interruption mask
|
||||
Turbo Assembler Version 5.3 06-02-23 10:20:14 Page 2
|
||||
code.asm
|
||||
|
||||
|
||||
|
||||
57 0050 E4 21 IN AL, 21H
|
||||
58 0052 24 F7 AND AL, 11110111B
|
||||
59 0054 E6 21 OUT 21H, AL
|
||||
60
|
||||
61 ; open slave chip's interruption mask
|
||||
62 0056 E4 A1 IN AL, 0A1H
|
||||
63 0058 24 FB AND AL, 11111011B
|
||||
64 005A E6 A1 OUT 0A1H, AL
|
||||
65
|
||||
66 ; main code
|
||||
67 005C BA 0283 MOV DX, 283H
|
||||
68 005F B0 80 MOV AL, 10000000B
|
||||
69 0061 EE OUT DX, AL
|
||||
70 0062 BA 0283 MOV DX, 283H
|
||||
71 0065 A1 0008r MOV AX, LED_STATE
|
||||
72 0068 EE OUT DX, AL
|
||||
73
|
||||
74 0069 33 D2 XOR DX,DX
|
||||
75 006B FB L1: STI
|
||||
76 006C 83 FA 0A CMP DX, 10
|
||||
77 006F 75 FA JNZ L1
|
||||
78
|
||||
79 ; reload main chip's original interruption vector
|
||||
80 0071 FA CLI
|
||||
81 0072 8B 16 0002r MOV DX,INT_SEG1
|
||||
82 0076 8E DA MOV DS,DX
|
||||
83 0078 8B 16 0000r MOV DX,INT_OFF1
|
||||
84 007C B8 2572 MOV AX,2572H
|
||||
85 007F CD 21 INT 21H
|
||||
86 0081 B8 0000s MOV AX,DATA
|
||||
87 0084 8E D8 MOV DS,AX
|
||||
88
|
||||
89 ; reload slave chip's original interruption vector
|
||||
90 0086 FA CLI
|
||||
91 0087 8B 16 0006r MOV DX,INT_SEG2
|
||||
92 008B 8E DA MOV DS,DX
|
||||
93 008D 8B 16 0004r MOV DX,INT_OFF2
|
||||
94 0091 B8 2572 MOV AX,2572H
|
||||
95 0094 CD 21 INT 21H
|
||||
96 0096 B8 0000s MOV AX,DATA
|
||||
97 0099 8E D8 MOV DS,AX
|
||||
98
|
||||
99 ; close main chip's interruption mask
|
||||
100 009B E4 21 IN AL, 21H
|
||||
101 009D 0C 08 OR AL, 00001000B
|
||||
102 009F E6 21 OUT 21H, AL
|
||||
103
|
||||
104 ; close slave chip's interruption mask
|
||||
105 00A1 E4 A1 IN AL, 0A1H
|
||||
106 00A3 0C 04 OR AL, 00000100B
|
||||
107 00A5 E6 A1 OUT 0A1H, AL
|
||||
108 00A7 FB STI
|
||||
109
|
||||
110 ; return to DOS
|
||||
111 00A8 B8 4C00 MOV AX,4C00H
|
||||
112 00AB CD 21 INT 21H
|
||||
113
|
||||
Turbo Assembler Version 5.3 06-02-23 10:20:14 Page 3
|
||||
code.asm
|
||||
|
||||
|
||||
|
||||
114 ; interruption service proccess
|
||||
115 00AD SW_INT PROC NEAR
|
||||
116 00AD 50 PUSH AX
|
||||
117 00AE FA CLI
|
||||
118 00AF 42 INC DX
|
||||
119
|
||||
120 00B0 52 PUSH DX
|
||||
121 00B1 A1 0008r MOV AX, LED_STATE
|
||||
122 00B4 03 C2 ADD AX, DX
|
||||
123 00B6 25 0001 AND AX, 00000001B
|
||||
124 00B9 BA 0283 MOV DX, 283H
|
||||
125 00BC EE OUT DX, AL
|
||||
126 00BD 5A POP DX
|
||||
127
|
||||
128 00BE B0 20 MOV AL, 20H
|
||||
129 00C0 E6 20 OUT 20H, AL
|
||||
130 00C2 B0 62 MOV AL, 62H
|
||||
131 00C4 E6 A0 OUT 0A0H, AL
|
||||
132 00C6 FB STI
|
||||
133 00C7 58 POP AX
|
||||
134 00C8 CF IRET
|
||||
135 00C9 SW_INT ENDP
|
||||
136
|
||||
137
|
||||
138 00C9 CODE ENDS
|
||||
139 END START
|
||||
Turbo Assembler Version 5.3 06-02-23 10:20:14 Page 4
|
||||
Symbol Table
|
||||
|
||||
|
||||
|
||||
|
||||
Symbol Name Type Value
|
||||
|
||||
??DATE Text "06-02-23"
|
||||
??FILENAME Text "code "
|
||||
??TIME Text "10:20:14"
|
||||
??VERSION Number 0503
|
||||
@CPU Text 0101H
|
||||
@CURSEG Text CODE
|
||||
@FILENAME Text CODE
|
||||
@WORDSIZE Text 2
|
||||
INT_OFF1 Word DATA:0000
|
||||
INT_OFF2 Word DATA:0004
|
||||
INT_SEG1 Word DATA:0002
|
||||
INT_SEG2 Word DATA:0006
|
||||
L1 Near16 CODE:006B
|
||||
LED_STATE Word DATA:0008
|
||||
START Near16 CODE:0000
|
||||
SW_INT Near16 CODE:00AD
|
||||
|
||||
Groups & Segments Bit Size Align Combine Class
|
||||
|
||||
CODE 16 00C9 Para none
|
||||
DATA 16 000A Para none
|
||||
STACK 16 00C8 Para none
|
||||
Turbo Assembler Version 5.3 06-02-23 10:20:14 Page 5
|
||||
Error Summary
|
||||
|
||||
|
||||
|
||||
*Warning* code.asm(9) Reserved word used as symbol: STACK
|
||||
|
||||
Reference in New Issue
Block a user