MOVBL,0FAH ;MOVCX,6 INT 10H DECDH CMPDH,6 JNZUP
;********************************************************** ;矩形框内部颜色变化 COLOUR2: MOVBH,0 MOVBL,0 CHANGE2: MOVAH,0BH INT 21H CMPAL,0 JNEC CMPBL,0
JNECHANGE2 MOVAH,7 MOVAL,14 MOVCH,7 MOVCL,7 MOVDH,11 MOVDL,19 INT 10H
CALL DELAY ;调用延时子程序 ADDBH,0FH CMPBH,0F0H JNZCHANGE2 JMPCOLOUR2 C: MOVAH,07H INT 21H CMPAL,'Q' JNED JMPE D:
CMPBL,0 JE S
MOVBL,0
JMPCHANGE2 S: MOVBL,1 JMPCHANGE2 E:
;**********************************************************
CHUZHAN ;保存寄存器 RET
RECTANGLEENDP
;---------------------------------------------------------- ;延时程序
DELAYPROCNEAR RUZHAN MOVAX,6 NEXT1: MOVCX,10 NEXT2:
LOOPNEXT2 DECAX JNZNEXT1 CHUZHAN RET
DELAYENDP
;---------------------------------------------------------- END START ;程序结束
五、遇到的问题及解决方法 主要问题存在于画圆那一部分。一开始不知道怎样才能画出一个圆形,后来经过各方面
资料收集,得到一种解决办法(见本文档设计要求画圆算法部分)。 因为画圆是用的写像素方法,面画三角形和画矩形是用的显示字符方法,两种方法所工
作的DOS显示方式明显不同,造成了画圆和画其它图形的转换时不能达到设计的要求,后来在过渡时加了条改变显示方式的语句:MOVAX,03H INT 10H,问题得到解决。
运用BIOS中断,检验键盘输入时,总是得不到想要结果,后查明原因是:返回参数AL
的值在相应的时候需要调用键盘输入给“吃掉”。 六、设计心得
1、学习汇编语言,首要问题是学习80X86指令系统。如果能将指令系统中的各个助记符、
格式等都能完全掌握并灵活运用,大部分工作就已经完成了。指令系统确定了CPU所能完成 的功能,是用汇编语言进行程序设计的最基本部分。如果不熟悉汇编指令的功能及其有关规
定,肯定不能灵活使用汇编语言。
2、汇编的写显存程序设计是一项很有意思的工作,在设计过程中你会得到很多乐趣,由此
能不断提升自己的学习兴趣,这种学习方法适合于其它知识的学习。