-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlab8.asm
More file actions
88 lines (76 loc) · 1.8 KB
/
lab8.asm
File metadata and controls
88 lines (76 loc) · 1.8 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
85
86
87
88
.MODEL TINY
.CODE
ORG 100H
START:
JMP MAIN
RESIDENT_DATA:
FILENAME DB "PRTSCR.TXT",0
FILE_ERROR_STRING DB "File error", 0Dh, 0Ah, '$'
FILEBUF DB 80*25 DUP(?)
PROC PRTSCR FAR
CLI
PUSHA
PUSH DS
PUSH ES
MOV AX, CS
MOV DS, AX
MOV ES, AX
MOV AH, 3CH
LEA DX, FILENAME
XOR CX, CX
INT 21H
JC FILE_ERROR
PUSH AX
PUSH DS
MOV AX, 0B800H
MOV DS, AX
MOV CX, 25
LEA DI, FILEBUF
XOR SI, SI
LOOP1:
PUSH CX
MOV CX, 80
LOOP2:
MOVSB
INC SI
LOOP LOOP2
POP CX
LOOP LOOP1
POP DS
MOV AH, 40H
POP BX
MOV CX, 80*25
LEA DX, FILEBUF
INT 21H
JC FILE_ERROR
MOV AH, 3EH
INT 21H
JC FILE_ERROR
JMP PRTSCR_END
FILE_ERROR:
MOV AH, 09H
LEA DX, FILE_ERROR_STRING
INT 21H
PRTSCR_END:
POP ES
POP DS
POPA
STI
DB 0EAH
OLD_HANDLER DD 0
IRET
ENDP PRTSCR
MAIN:
MOV AH, 35H
MOV AL, 05H
INT 21H
MOV WORD PTR OLD_HANDLER, BX
MOV WORD PTR OLD_HANDLER+2, ES
MOV AH, 25H
MOV AL, 05H
LEA DX, PRTSCR
INT 21H
MOV AH, 31H
MOV DX, (MAIN-START+10FH)/16
INT 21H
END MAIN