Мне нужно написать ассемблерный код, который сохраняет то, что было написано на экране (в dosbox) в текстовом режиме, очищает экран, а затем восстанавливает то, что было написано ранее, поэтому я написал этот код, но он не работает правильно. кто-нибудь может указать, почему? буду очень благодарен
P.S. я еще нуб
Вот мой код:
Dataseg segment
Data_seg dw 2000 dup(?)
Dataseg ends
Codeseg segment
Main PROC far
assume ds:Dataseg,cs:Codeseg,ss:stackseg
Mov ax,Data_seg
Mov es,ax
Mov ax,0b800h
Mov ds,ax
Mov cx,25*80 ;(rows)*cols-default for screen
Mov di,OFFSET Data_seg
Mov si,0
CLD ;autoincrement
Rep movsw
;now clearing the screen
Mov cx,25*80
Mov ax,0b800h
Mov es,ax
Mov ax,0720h
Mov di,0
Rep stosw
;now restoring the contents of the screen
Mov ax,Data_seg
Mov ds,ax
Mov cx,25*80
Mov di,0
Mov si,OFFSET Data_seg
Rep movsw
Mov Ah,4ch
Int 21h
Main endp
Codeseg ends
end Main