.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