




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理课程设计学校:太原理工大学学院:信息工程学院设计题目:国际象棋棋盘绘制程序专业班级:自动化07-01 班姓名:学号:一课程设计的题目 :国际象棋棋盘绘制程序二程序功能简述本程序在屏幕上左侧绘制一个红黑相间的国际象棋棋盘,右侧绘制一个汉字棋 ,棋字的四个角有角框。显示完后,按q 退出。运行本程序后,从屏幕左上角开始,棋盘的奇数行位置逐行出现彼此相间 15 个像素宽的红色块(虚的) ,共出现五行,每行五个红色块,然后从第一行的第一个色块的右下角开始,在棋盘的偶数行位置逐行出现彼此相间 15 个像素宽的红色块(虚的),每行四块,共四行。其中红色块由 8X8个彼此相问一个像素的红点组成,前一个
2、色块和后一个色块之间有一定的显示时间间隔。然后,屏幕的右侧会按棋的笔画顺序,一笔一画的显示汉字棋 ,其中前一笔和后一笔之间有一定的显示时间间隔。 然后按先横后竖的顺序, 在棋字的四个角的斜上方显示四个角框。笔画同样有时间间隔。显示完后,若在键盘上输入q,则程序退出。三 主要设计思想简述本程序主要通过调用 10H 号 BIOS 中断的 0CH 号功能点调用来显示图像。将要显示点的坐标(line,cow)分别传送到dx, cx,然后将点的颜色代码传送al,接着调用 10H 号 BIOS 中断的 0CH 号功能,一个点就显示出来。显示矩形块以及笔画(横,竖,撇,捺) 是先确定第一个点的坐标后, 然后
3、让点的行坐标line,列坐标cow按某种方式循环,每次循环后调用10H号BIOS中断的 0CH 号功能来完成点的显示。全部循环完后,这些点的排列就是要显示的矩形块或笔画。所以,点的行坐标line ,列坐标 cow 的循环方式就决定了要显示的图像。显示矩形块(虚的)的循环方式是: line , cow 都循环, line 在外层,循环一次加2, cow在内层,循环一次加2, line循环的次数决定了方块的高,cow循环的次数决定了方块的宽。笔画横的循环方式是: 只 cow 循环,循环一次加1,循环的次数决定了笔画横的长度。 笔画竖的循环方式是: 只 line 循环, 循环一次加1,循环的次数决定
4、了笔画竖的长度。笔画撇的循环方式是: line , cow 都循环,在同一层。循环一次line加1, cow减1。循环的次数决定了笔画撇的长度笔画捺的循环方式是: line, cow 都循环,在同一层。循环一次line 加 1, cow 加1。循环的次数决定了笔画捺的长度。第一个点的坐标,循环方式,循环的次数决定了要显示的图形的位置,形状,尺寸。将位置不同的矩形块(虚的)按照棋盘的几何结构显示出来,就构成了棋盘。将位置,长度不同的笔画 (横,竖,撇,捺)按照棋字的几何结构显示出来,就构成了棋字。边框同理。三.程序流程图主程序初始舛坐标RROW岂仙长愎NUM?、说用冷衽cuen所对应的笔画子程序
5、蒲用®时了理hMehyl结束)我示笔的宏HONGl逝杉块凡列显示宏KUAI点诩用功能:一X AH厂始点调用功彘号八H制始点的打整际一DX夕;熊仄的次效一51武始白的则坐标-3 CX调用中断IOH.七成点的R示<cx+g CX'1If(fiS束)王ifli ff tJFHLNO点顿色)AL循环的次故> DI起始点的行坐标一DX年始点的列型标一3CX调用中断KM.完成点的显示CX-I-& CXC幼束二)延时千程序dduy芯m广程序PIAN配时尸对了dekiyl0DISP_ftECT四.源程序代码DATASEGMENTLINEDW0;矩形块左上角的行ROWDW0
6、; 矩形块左上角的列PIXDB10; 矩形块的颜色NDW?;文字笔画的长度PIX_ADB11; 文字笔画的颜色DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:;主程序MOV AX , DATAMOV DS , AXMOV AH , 0MOV AL , 4INT 10H;设置320X 200彩色图形方式mov ah,0bhmov bh,01mov bl,0int 10hKUAI MACRO R,L,N ;定义显示矩形块阵列宏LOCAL LA,LBMOV ROW,RMOV LINE,Lmov di,NLA:MOV CX, NLB:CALL DISP_R
7、ECTcall delay ADD row, 30 LOOP LBMOV ROW, R add line,30DEC DIJNZ LAENDMHONG1 MACRO L,R,NUM,CHEN ;定义显示笔画宏MOV LINE,LMOV ROW,RMOV N,NUMCALL CHENCALL delay1ENDMKUAI0,0,5;显示棋盘奇数行KUAI15,15,4;显示棋盘偶数行HONG1 30,165,21,HENG;显示棋字HONG1 15,176,60,SHUHONG1 31,175,10,PIANHONG1 32,178,5,NAHONG1 30,191,30,HENGHONG1 1
8、5,196,45,SHUHONG1 15,214,45,SHUHONG1 40,196,19,HENGHONG1 50,196,19,HENGHONG1 60,191,30,HENGHONG1 63,200,10,PIANHONG1 63,210,12,NAHONG1 10,160,5,HENG;显示角框HONG1 10,160,5,SHUHONG1 10,223,5,HENGHONG1 10,228,5,SHUHONG1 80,160,5,HENGHONG1 75,160,5,SHUHONG1 80,223,5,HENGHONG1 75,228,6,SHU;按q返回DOSL5:mov ah,
9、8int 21hcmp al,'q'JNE L5MOV AH , 4CHINT 21HDISP_RECT PROC nearPUSH AXPUSH CXPUSH DXPUSH SIPUSH DIMOV AH , 0CH;指明写点调用MOV AL , PIX ;取点的颜色MOV DI , 8MOV DX , LINEDISP_2:MOV SI , 8MOV CX , ROWDISP_1:INT 10HINC CXinc cxDEC SIJNZ DISP_1INC DXinc dxDEC DIJNZ DISP_2POP DIPOP SIPOP DX;用于控制行显示循环;取点的行坐标
10、;控制列显示循环;取显示点的列坐标; 完成点的显示; 列坐标加2; 循环显示完一行;行坐标加2; 循环显示完 8 行POP CXPOP AXRETDISP_RECT ENDPDELAYPROC NEAR;延时子程序PUSH CXPUSH DXMOV DX,2500D11:MOV CX,25000D12:LOOP D12DEC DXJNZ D11POP DXDELAYDELAY1D11A:D12A:DELAY1HENGDISP_3:POP CXRETENDPPROC NEARPUSH CXPUSH DXMOV DX,10000MOV CX,25000LOOP D12ADEC DXJNZ D11A
11、POP DXPOP CXRETENDPPROC nearPUSH AXPUSH CXPUSH DXPUSH SIPUSH DIMOV AH , 0CHMOV AL , PIX_AMOV DX , LINEMOV SI , NMOV CX , ROWINT 10Hinc cxDEC SI;延时子程序1;笔画横的子程序;指明写点调用;取点的颜色;取点的行坐标; 控制列显示循环;取显示点的列坐标; 完成点的显示; 列坐标加 1(行不变)HENGSHUDISP_4:JNZ DISP_3POP DIPOP SIPOP DXPOP CXPOP AXRETENDPPROC nearPUSH AXPUSH C
12、XPUSH DXPUSH SIPUSH DIMOV AH , 0CHMOV AL , PIX_AMOV DI , NMOV DX , LINEMOV CX , ROWINT 10Hinc DXDEC DIJNZ DISP_4POP DI; 循环显示完一行; 笔画竖的子程序;指明写点调用;取点的颜色; 用于控制行显示循环;取点的行坐标;取显示点的列坐标; 完成点的显示; 行坐标加 1(列不变); 循环显示完一列POP SIPOP DXPOP CXPOP AXRETSHUENDP;笔画撇的子程序PIANPROC nearPUSH AXPUSH CXPUSH DXPUSH SIPUSH DI;指明写
13、点调用;取点的颜色; 用于控制撇的长度;取点的行坐标;取显示点的列坐标; 完成点的显示;列坐标减1; 行坐标加 1MOV AH , 0CHMOV AL , PIX_AMOV DI , NMOV DX , LINEMOV CX , ROWDISP_5:INT 10HDEC cxinc DXDEC DIJNZ DISP_5POP DIPOP SIPOP DXPOP CXPOP AXRETPIANENDP; 笔画捺的子程序NAPROC nearPUSH AXPUSH CXPUSH DXPUSH SIPUSH DI;指明写点调用;取点的颜色; 用于控制显示循环;取点的行坐标;取显示点的列坐标; 完成点
14、的显示; 列坐标加1;行坐标加1MOV AH , 0CHMOV AL , PIX_AMOV DI , NMOV DX , LINEMOV CX , ROWDISP_6:INT 10HINC cxinc DXDEC DIJNZ DISP_6POP DIPOP SIPOP DXPOP CXPOP AXRETNAENDPCODEENDSEND START五总结报课程设计中所遇到的主要问题和解决方法。首先遇到的问题是程序的调试, 我把程序写好并检查后没发现错误, 然后上机汇编却发现 5 个警告错误,看错误类型号,都是英语,看不懂,幸好课本后部附录里有翻译, 这个问题解决了, 但我还是不知道错误的那几行
15、哪里错, 看起来很正确。最后。经过思考和耐心检查,终于解决了,原来其中一行把宏实参0 写成了O (读欧),这一行的错误导致了其他行的错误。调试程序确实需要耐心,这个错误很简单,但太隐蔽了,检查了 20 分钟,差点没抓狂。然后遇到的问题是画流程图, 由于以前没画过, 也不知道用什么软件, 就去网上搜索,于是发现了 windows office 套件中的 Visio 。 Visio 确实很好用,操作很简单,容易上手,画出的图很漂亮,流程图终于完成了。创新和得意之处。这个程序是仿写的,但基本上只是借鉴了它的方法,95%的内容是重写的,增加了许多东西和功能。 我觉的自己的这个程序比较起来还是简洁的,
16、设计了两个宏和五个子程序来实现各种功能, 然后在主程序中调用。 代码看起来比较整齐, 条理,如果要显示别的图像,只要在主程序中改一下宏的参数就可以了。课程设计中存在的不足,需要进一步改进的设想。这个程序还是不够精练, 五个图形子程序有许多相似的地方, 功能区别不大, 加上些判断, 应该可以合并成一个子程序, 两个延时子程序除了参数, 其实是一个子程序,也可以合并成一个子程序,这样用内存会少很多。课程设计的感想和心得体会。课程设计做完了,之前觉的很难,但做完以后,又感觉很简单,最起码对我的这个程序来说。曾经的困惑现在已经成了知识,有一种成就感。可以说,我享受了一次微机原理课程设计。 对此而言, 前几天的辛苦和思考都是值得的。 真希望这样的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湿地公园水生植物种植及生态景观设计施工协议
- 高端工业模具技术改造质量跟踪及服务合同
- 土地储备项目补偿款支付及延期协议
- 影视作品兼职配音员合作协议
- 商务办公租赁收益分配合同
- 电视剧组武术替身人员酬劳结算合同
- 儿童抚养费用与父母收入比例调整合同
- 家庭经济状况联动子女抚养费用调整合同
- 海外房产投资风险评估与风险控制咨询协议
- 苏科版2025年中考数学三轮冲刺专题-数学思维及能力含答案
- 2022年江苏泰州市第四人民医院招考聘用高层次人才11人(必考题)模拟卷及答案
- 新加坡sm214th面经44踏水行歌
- 产科输血-ppt课件
- 国家职业技能标准 (2021年版) 公共营养师
- 森林防火PPT课件
- 多合规政策及流程变化对照版
- 钢箱梁的制作及安装方案
- 工程测量毕业设计毕业论文
- 一元二次方程四种解法知识点与练习题(包括十字相乘法)
- 水平四篮球行进间运球教学设计
- 雨露计划职业教育补助学籍证明四川
评论
0/150
提交评论