当前位置:首页 > 图形课程设计报告
郑州航空工业管理学院课程设计
3.3输入/输出描述
①输入Y
②输入S
③输入Z
- 3 -
郑州航空工业管理学院课程设计
④输入q
返回到DOS界面。
四.设计方案
BIOS调用中并没有现成的显示圆、三角形和矩形的功能,故编写了三个子程序,采用段内调用子程序的方法来实现。其中圆用在屏幕上显示12个小圆点以围成一个圆来实现,12个小圆点的行列坐标事先定义在一个变量中。三角形和矩形的实现原理是采用控制写点的方式,行、列、块的颜色不是采用变量表示,此处的三角形用寄存器表示,使用了堆栈技术,矩形使用的也是寄存器,但没有使用堆栈。整个程序的结构如图所示。
五.程序结构
5.1段定义说明
分为数据段DSEG、堆栈段SSEG和代码段CSEG。堆栈段是为一些字符串和图形的光标位置及其他一些数据分配空间;数据段是记录程序运行过程中所需的信息,包括字符信息,图形光标等;代码段则是程序算法部分,通过对各
- 4 -
郑州航空工业管理学院课程设计
子程序的调用,实现图形转换功能。
5.2子程序功能说明
子程序包括三个:函数名为YUAN,SAN和ZHENG,分别具有画圆、画三角形和画矩形的功能。
调用关系:根据指令
SA:CALL SAN
JMP INPUT
ZHEN:CALL ZHENG
JMP INPUT
YUA:CALL YUAN
JMP INPUT
当转移到各标号时,调用不同的子程序,从而实现绘制图形。过程返回指令RET定义在子程序中,当执行完子程序后,跳转到INPUT。
参数传送方式:程序中用到利用寄存器传递参数和利用约定存储单元的方法传递参数。即把参数存放在寄存器或是存储单元中来实现主程序和子程序间的参数传递。
5.3算法描述
(1)各模块功能实现: MAIN模块
功能:这是个主过程,是负责进入和退出图形转换程序的入口。 利用指令:MOV AH,08 ;不带回显键盘输入,出口参数al INT 21H
来实现字符的输入,从而进入相应的子程序。 YUAN模块
功能:实现画圆的功能。
圆用在屏幕上显示12个小圆点以围成一个圆来实现,12个小圆点的行列坐标事先定义在一个变量中。利用CALL指令直接实现从主函数调用。
SAN模块
功能:实现画三角形功能。利用CALL指令直接实现从主函数调用。 ZHENG模块
- 5 -
郑州航空工业管理学院课程设计
功能:实现画矩形的功能。通过向四个方向滚屏,来实现绘制四个边。 利用CALL指令直接实现从主函数调用。 (2)典型指令的应用:
程序中运用了大量的数据定义语句、数据传送指令及转移指令,并用到DOC功能调用和基本输入输出系统BIOS中的中断处理程序。典型的有JZ跳转指令,中断指令INT 10H,INT 21H,如指令:
MOV AL,2 MOV AH,9 MOV BL,0E0H INT 10H
其中AL存放字符代码,AL=字符代码,AH=9表示将字符和属性写到光标位置处,BL=属性。而指令MOV AH,4CH/INT 21H表示返回到DOC操作界面。
六.程序流程图
程序开始运行后,先提示:please choose the lettery,s,z:input q to quit然后操作者选择一个字母,程序根据比较:
CMP AL,’S’ JZ SA CMP AL,’Z’ JZ ZHEN CMP AL,’Y’ JZ YUA CMP AL,’q’ JZ EXIT
MOV DX,OFFSET INFO2 MOV AH,09 INT 21H
- 6 -
共分享92篇相关文档