VGA显示卡图形模式访问(提示版) (1)

导读:
  新一篇: VGA显示卡图形模式访问(提示版) (2)
  VGA显示卡图形模式访问(提示版) (1)
  最近闲来无聊,在 上海图书馆 借了本《IBM-PC汇编语言程序设计》。没想,在看显示器访问的那章时。觉得作者讲得实在含糊,无法让人明白。后来,又借了本《80x86汇编语言程序设计》发现,这两本书在那一章节的内容几乎是一样,例子图片都一样。在我反复的摸索和在 上海科学技术情报研究所 里查看几天的资料后。终于模清了门路。当然,我也上网看了。没有相关的内容,也许是我没找到。所以,在这里献上我的成果希望有缘人能和我交流。
  本文主要是介绍不用BIOS中断在VGA 640*480 16色模式下,对屏幕单个象素进行读写操作。我将用两段代码来说明如何操作,用于对各位处于迷茫的学者们一些提示。
  在阅读本文前,我希望读者能够有一定的汇编基础,和对VGA显卡原理的基础知识(其实只要知道一些就可以了)。如果有空,可以在看本文之前阅读前面我借的两本书中的一本中,有关VGA显示卡的操作内容。
  本文使用的例子,是用于NASM汇编器,读者可以从网上免费下载。我使用的软件,都可以从www.sf.net免费下载。
   对VGA的写操作
   首先是确定坐标位置,由于对内存的访问是一个字节,也就是 8 位二进制,而四个位面同一地址的字,构成了一个四位的颜色值。所以,我们需要确定在0a000h中的哪段地址进行操作。
  b=x/8+y*80
  既然知道如何计算所写的位置,我们就来写一段汇编代码。
  文件名: VGA_WRITE.ASM(部分解析)
  作者: 黄庠魁
  主要函数:Pix_write
  参数说明: cx : x坐标值 dx : y坐标值 al : 颜色值(16色)
  简要注意: 本程序需要用户在VGA 640*380 16色模式下工作,在使用前,请使用BIOS中断
  设置VGA显示模式为 12H。
  创建时间: 2005年1月
  CopyRight: (C)黄庠魁
  邮箱:Huangxiangkui@msn.com
  产权所有 不得抄袭 如要使用 与我联系
  x=cx,y=dx
  push ax ;保存现场AX寄存器
  push bx ;保存现场BX寄存器
  push dx ;保存现场DX寄存器
  开始计算x/8
  mov ax,cx
  mov bx,8
  div bl ;al=ax/8 ah=ax%8
  mov word[x],ax ;将结果存入x
  开始计算y*80
  pop ax ;将dx的内容读入ax
  push ax;将ax内容入栈,以便在程序结束后恢复dx内容
  mov bx,80
  mul bx ;(dx,ax)=ax*80。因为dx在这个计算中不会有值,所以dx不作记录。
  mov word[y],ax
  开始汇总计算
  mov ax,word[x]
  mov dx,word[y]
  mov bl,al
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值