经典汇编语言教程:例8.6 用直接操作显示缓冲区的方法来画线

例8.6 用直接操作显示缓冲区的方法来画线

在256色320×200的图形显示模式下,从屏幕顶到屏幕底依次画横线(从最左边到最右边),线的颜色从1依次加1。要求用直接操作显示缓冲区的方法来画线。

解:
.MODEL SMALL
.DATA
mode DB ? ;保存当前显示模式
.CODE
HLinePROC Near USES CX DI;画一条横线,DI—横线所在行,AL—线的颜色
IMULDI, 320;跳过前面横所对应的字节,每行320个字节
MOVCX, 320
REPSTOSB;重复设置AL的值
RET
HLineENDP
.STARTUP
MOVAH, 0FH
INT10H
MOVmode, AL;保存当前显示模式,在程序结束前恢复之
MOVAH, 0
MOVAL, 13H
INT10H;设置256色320×200的图形显示模式
MOVAX, 0A000H
MOVES, AX;图形模式的段地址为0A000H
CLD
MOVDI, 0
MOVAL, 01H;CX=线所在列,AL=线的颜色
draw:
CALLHLine
INCAL
INCDI
CMPDI, 200
JLdraw;从上到下画200条横线
MOVAH, 0
INT16H;等待一个按键
MOVAL, mode
MOVAH, 0
INT10H;恢复原来的屏幕显示模式
.EXIT 0
END

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号