目录 上一页 下一页 下一章

第9章 图形显示 -265-

2000H+0A50H+0DH=2A5DH;
  ④ 由于53除以4的余数是1,所以这个点在字节内占用bit5、bit4两位,这个字节应该是00100000B。
  结论:画出此点的方法是向内存0B800H:2A5DH处写入20H即可。
  通过上面所述的这些步骤大家就可以总结出计算显示缓冲区偏移量的方法,在此笔者不再总结。下面给出的一个程序可以在屏幕上由(0,0)向(199,199)处画一条绿色直线,程序中的画点子过程就是应用了直接写屏的方法。
DRAW.ASM
code


main










lineloop:













main

pixel


segment
assume
org
proc
mov
int

mov
mov
mov
int

mov
mov

call
inc
inc
cmp
jnz

mov
int

mov
int
mov
int
endp

proc
push


cs:code,ds:code
100h
near
ax,0004
10h

ah,0bh
bh,1
bl,0
10h

cx,0
dx,0

pixel
cx
dx
dx,199
lineloop

ah,0
16h

ax,0003h
10h
ah,4ch
21h


near
ax





;设置图形显示模式4


;选择彩色组0




;直线起始点坐标为(0,0)


;画出一个绿色点
;X坐标加1
;Y坐标加1
;画到第199个点了吗?
;若没画完直线,转LINELOOP继续

;等待键盘输入


;设置字符显示模式3

;结束进程



;画点子程序,使用直接写屏方法
;保存寄存器

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章