【问题标题】:Drawing directly by graphics card on Intel 8086Intel 8086显卡直接绘图
【发布时间】:2013-12-18 11:51:24
【问题描述】:

我要在 Intel 8086 下不使用中断而是直接访问显卡来绘制一些形状。问题是,我不知道如何调用此类操作,所以我什至无法在上面搜索任何内容。我所知道的是,这种“模式”适用于 80x25 分辨率,并且位于内存中的 b800h 上。我尝试用谷歌搜索“8086 图形模式”、“8086 文本模式”、“无中断绘图”等,但没有任何命中。你能告诉我这样的图画是怎么叫的,这样我就可以在上面阅读了吗?

【问题讨论】:

  • 想要完全避免在更改视频模式时使用中断(仅通过直接调整视频卡寄存器创建自定义视频模式),还是仅通过直接写入视频内存进行绘图?前者比较困难,后者可能比较简单,具体取决于视频模式,请参阅stackoverflow.com/questions/14081088/dot-2-pixels-together/…。 BIOS VGA 视频模式 0x13 (320x200x8bits) 是最简单的。没有“8086 图形模式”或“8086 文本模式”之类的东西。 8086 是处理器,而不是显卡。视频模式取决于显卡

标签: assembly x86 x86-16 video-card


【解决方案1】:

可以在此处找到访问VGA video cards 的参考。

如果找不到更详细的信息,可以随时使用中断调用,然后进行调试,看看它在做什么。

【讨论】:

    【解决方案2】:

    用汇编可以直接写在显存卡里。

    在您所指的文本模式下,内存图形从位置b800h开始,每两个字节指的是要显示的字符和颜色。

    这是一些示例代码;它可以在 dosbox 或真正的 dos box 上运行。

    org 100h
    
    ;frame buffer location
    push 0xb800
    pop es
    
    ;access the 79 character position on the 80 chars wide mode
    mov di, 158
    
    mov al, 40h ; the '@' character
    mov [es:di], al
    inc di
    mov al, 79h ; blue on gray color
    mov [es:di], al
    

    【讨论】:

    • 如果你有一些,那会让你的答案更有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2015-06-16
    • 1970-01-01
    • 2022-12-05
    相关资源
    最近更新 更多