【问题标题】:How can I clear the entire screen in emu8086?如何清除emu8086中的整个屏幕?
【发布时间】:2021-06-24 05:52:54
【问题描述】:

我正在使用图形模式 (AL=12h),我想画一些线,然后清理屏幕并再次画一些线。

mov ah,06
mov al,00
mov bh,07
mov ch,00
mov cl,00
mov dh,24
mov dl,79
int 10h

我使用了上面的代码,但它停在int 10h
我想做这样的事情:

draw_vrt 320,0

draw_hrz 0,240   

mov ah,06
mov al,00
mov bh,07
mov ch,00
mov cl,00
mov dh,24
mov dl,79
int 10h
    
draw_vrt 320,0
            
draw_hrz 0,240

【问题讨论】:

  • 通过设置videomode可以清空整个屏幕。 Int 10/AH=06h 向上滚动 AL 文本行(如果 AL=0,则为 30)。我在 DosBox 中尝试过它并没有出乎意料地停止。更具体。
  • 问题是它没有进入代码末尾的draw_vrt 320,0 draw_hrz 0,240行,为什么
  • 在 TurboDebugger 中调用 int 10h 似乎没问题。这可能是您的模拟器中的错误。顺便说一句,您知道视频模式 12h 有 30 行而不是 25 行吗?
  • 阅读手册我们看到emu8086只支持视频模式0319。您的模式 12h 不在其中!尽管如此,我还是尝试了它,是的,它产生了某种 80x60(字符)屏幕,根本不起作用。已经说过很多次了:“emu8086 是坏软件”。

标签: assembly x86-16 emu8086


【解决方案1】:

这个简单的“清除屏幕”代码对我有用:

;Clear screen
mov ax, 3
int 10h`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多