我正在尝试在emu8086中画一个方框,使用图形模式(vga)。由于某些原因,像素与像素之间存在延迟,这使得它看起来像动画,而不是一次绘制框。
有没有办法克服这个问题?调试器中的延迟设置为0。
如果需要,请参考下面的相关代码:
BORDER:
mov ax, 13h ;; vga mode
int 10h
mov cx, 640
BORDER_LOOP:
push cx
mov bh, 0h
inc borderX
mov cx, [borderX]
mov dx, [borderY]
mov al, [color]
mov ah, 0ch
int 10h
pop cx
LOOP BORDER_LOOP发布于 2020-06-13 04:28:54
INT 10h / AH=0Ch只是不是一种快速绘制屏幕的方式。既然你使用的是模式13h,你也可以直接写到显存。数据段为A000,地址为320 * y + x (每像素一个字节,行主顺序,从左上角开始)-您可以使用REP STOS绘制水平线(或填充整个屏幕),并使用REP MOVS复制数据块。在许多情况下,您可以比调用BIOS绘制像素快数百倍。
https://stackoverflow.com/questions/62351830
复制相似问题