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
|
.model small
.stack 100h
.data
screenArr dw 1920 dup (0)
.code
clearScreen PROC NEAR
mov cx,3840
mov bx, offset screenArr
saveScreen:
mov dx, es:[si]
mov word ptr [bx], dx
inc si
inc bx
loop saveScreen
mov cx, 3840
mov si, 0
fillScreen:
mov al,0
mov es:[si], ax
add si, 2
loop fillScreen
ret
clearScreen ENDP
start:
.486
mov ax,@DATA
mov ds,ax
mov ax,0b800h
mov es,ax ;в es начало видеопамяти
mov si,0 ;смещение относительно начала видеопамяти
mov ah,7h ;атрибуты выводимых символов
CALL clearScreen
input:
MOV dx,1900h
INT 10h
MOV ah,07h
INT 21h
mov bx, offset screenArr
mov si, 0
mov cx, 3840
restoreScreen:
mov dx, word ptr [bx]
mov es:[si], dx
inc bx
inc si
loop restoreScreen
exit:
mov ax,4C00h
int 21h
END start
|