![]() | 第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 |