汇编源代码之图形显示方式屏幕的保存和恢复
2009-01-28 09:37:10 来源:WEB开发网other_vga2:
cmp vga_type,2
jnz vp_ret
mov al,0eh
mov dx,03c4h
cmp ah,1
jz vp_tvga2
out dx,al
inc dx
in al,dx
cmp ah,2
jz vp_tvga1
mov vga_win3,al
xor al,al
out dx,al
ret
vp_tvga1:
mov al,2
out dx,al
ret
vp_tvga2:
mov ah,vga_win3
out dx,ax
ret
VGA_PAGE ENDP
VGA_BASE PROC
mov dx,3c4h ;这一段是照抄的,找不到资料
mov ax,402h
out dx,ax
mov ax,704h
out dx,ax
mov dx,3ceh
mov ax,0ff08h
out dx,ax
mov ax,0c06h
out dx,ax
mov ax,204h
out dx,ax
mov ax,5
out dx,ax
ret
VGA_BASE ENDP
;====================================================
;本子程序为恢复原来的显示内容
;在自己的程序执行完后使用
RESTORE_SCR PROC
push cs
pop ds
mov al,video_mode ;根据不同的原显示模式不同处理
cmp al,3
jz rs_mode3
cmp al,7
jz rs_mode7
push 0b800h ;以下为图形方式恢复显示内容
pop es
push cs
pop ds
mov si,offset ram_buffer
xor di,di
mov cx,1000h
cld
rep movsb ;恢复显示 RAM
mov ah,2
call vga_page
call vga_base
call restore_vram
xor ah,ah ;恢复到原来的显示模式
更多精彩
赞助商链接