summaryrefslogtreecommitdiff
path: root/sem2/lab3/vdraw.asm
blob: d751f2859cc0990ae1469f3033ef9f5b24638ff2 (plain)
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
.model small
.stack 100h
.data

screenArr dw 1920 dup (0)

.code
start:
.486
mov ax,@DATA
mov ds,ax

mov ax,0b800h
mov es,ax ;в es начало видеопамяти
mov si,0 ;смещение относительно начала видеопамяти
mov ah,7h ;атрибуты выводимых символов

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

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