我需要编写汇编代码,以文本模式存储在屏幕上(在 dosbox 中)写的内容,清除屏幕然后恢复以前写的内容,所以我写了这段代码,但它似乎无法正常工作..谁能指出为什么?我会很感激
PS:我还是菜鸟
这是我的代码:
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