版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、xxx微机原理与接口技术课程设计说明书前 言微机已经成为人们生活中必不可少的一部分,掌握微机原理及其相关知识是我们电类专业的必备知识。8086 cpu曾是使用最广泛的16为微处理器,它由执行部件和总线接口部件组成。汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替操作码,用地址编号代替地址码。汇编语言用比机器语言易于读写、调试和修改,同时具有机器语言的全部优点。汇编语言用来编制系统软件和过程软件,其目标程序占用内存少,运行速度快,有着高级语言不可代替的用途。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的理解,打下结束理论基础;向下为掌握硬件系统的
2、原理,打下实践应用基础 。 本次课程设计题目是方块游戏设计,其中很多涉及到dos调用的相关知识。dos功能调用通过软件中断调用的,在中断调用前需要把功能号装入ah寄存器中,把子功能号装入到al中,除此之外,还需要在cpu的寄存器中提供专门的调用参数。调用之前,首先将调用参数装入指定的寄存器,然后把功能号装入ah中。按中断号调用dos,检查返回参数是否正确。 51课程设计任务书 题 目: 方块游戏软件设计 初始条件:带有编辑器、汇编程序、连接程序和调试程序的电脑一台。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)采用汇编语言设计一个方块游戏软件,实现将从屏幕上
3、方下落的方块用键盘控制移动,按下某键停止。按q退出程序。(1) 设计任务及要求分析(2) 方案比较及认证说明(3) 系统原理阐述(4) 软件设计课题需要说明:软件思想,流程图,源程序及程序注释(5) 调试记录及结果分析(6) 总结(7) 参考资料(8) 附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图时间安排:1月10日1月12日:收集资料,方案选择1月13日1月16日:整体流程,程序细节1月17日1月20日:调试程序,报告撰写1月21日: 交设计报告,程序演示,答辩 指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 目 录1 课设任务及要求分析41.1问题描述41.2任务
4、目标41.3需求规定42 方案比较及认证43 系统原理阐释54.软件设计54.1软件思想54.2源程序及注释95 调试记录及结果分析96设计心得127 参考文献12附录一:源程序及注释13附录二 本科生课程设计成绩评定表49方块游戏设计1 课设任务及要求分析1.1问题描述 在windows环境下写一个程序,能够提供简单的用户图形界面,启动程序后进入该界面,用户界面由一定数量的小方格组成的方块构成。当游戏开始时,计算机将随机抽取方块的放到方格上。此游戏允许玩家旋转方块,左右移动,加速向下,满行消除并计分。1.2任务目标1在windows环境下建立一个简单的用户界面,显示重新游戏、暂停、退出等键2
5、游戏开始后,通过指定的功能键控制方块,方块可以左右移动、落下、旋转。3界面上要显示分数和游戏的难度,还要预先显示下一个方块。1.3需求规定表1 产品功能需求表功能1. 随机产生经典俄罗斯方块图形2. 设置难度级别,不同级别速度不同3. 方向键实现下落图形的左移、右移、加速下落、变形等基本操作4. 正确判断游戏结束5. 对游戏成绩进行记分2 方案比较及认证 方案一:直接在界面上显示功能性控制键。 方案二:在菜单栏中显示控制游戏的功能性键,并且能够自定义背景颜色和游戏音乐。 方案比较:第一种方案简洁。第二种方案体现游戏的个性化,显示菜单栏很经典,但实现起来比较复杂。 结论:由于第一种方案比较简洁,
6、能够完成设计的功能要求,且比较容易实现,相对第二种方案的复杂,故选择方案一。3 系统原理阐释对俄罗斯方块游戏项目计划划分为三个模块,分别为初始化设置和窗口函数相关模块、绘制方块模块、方块移动模块。其中绘制方块模块、方块移动下落模块是先决条件。在该模块完成的基础上,初始化设置和窗口函数相关模块才能得以实现。编写一个主程序和相关的子程序和宏定义,通过主程序调用控制不同功能能的子程序来实现游戏的运行。定义一些宏,包括printstring(显示字符串)、string(在光标位置显示字符及其属性)、clrscr(清屏)、closecur(不显示光标)、gotoxy(设置光标位子)、clrkey(清除键
7、盘缓冲区、,并调用一种键盘属性)、pushall(进栈保护现场)、popall(出栈恢复现场)、block(在光标位置显示2次0dbh,属性为attr)、 cprintf(在光标位置显示ch)、 random(定义随机函数,随机产生砖块)、printscore(显示分数)。然后在做一些初始化定义。定义数据段,先定义方块的形状和一些标志性变量,在定义一些显示信息和音乐。定义堆栈段,开辟了100字的空间。定义代码段,先清屏,对屏幕进行初始化设计,然后根据游戏的功能调用相应的功能性子程序,使游戏能够按所要求的顺序运行。在调用子程序时注意相关寄存器先要进入堆栈进行保护,然后在子程序调用完之后出栈恢复断
8、点。相应的功能键为:q/q(退出游戏),end(暂停),home(重新游戏),(方块旋转),(方块加速下落),(方块左移),(方块右移)。4.软件设计4.1软件思想主程序完成code与代码段联系, data与数据段联系, data与拓展段联系, stack与堆栈段联系。然后清屏,不显示光标。最后通过调用一些子函数和宏来实现游戏的功能。在主程序中,调用的宏包括clrscr(清屏)、closecur(不显示光标)、clrkey(清除键盘缓冲区,并调用一种键盘属性),调用的子程序包括game_screen (调用游戏屏)、new_game(游戏初始化)、score(计分)、moveable(判断能否
9、移动,产生移动标志mable)、brick_reach_bottom(砖块到底之后执行的操作)、music(音乐)。通过顺序、判断、循环三种基本结构和子程序与宏来实现程序的正常运行。其中有的子程序包含更小的子程序和宏。在程序运行中,会频繁的调用一些中断,常用的中断号有10h(显示器i/o调用),16h(键盘i/o调用),1ah(时间调用),21h(写输入中断)。调用方法如下:16h中断调用有三个功能,功能号为02。(1)ah=0 本功能为从键盘读字符到al寄存器中。(2)ah=1 本功能为读键盘缓冲区字符到al寄存器中,并置zf标志位。(3)ah=2 本功能为读取特殊功能键的状态。1ah中断调
10、用有二个功能。功能号为0和1。(1)ah=0 本功能为读取时钟计数器的当前值。(2)ah=1 本功能为设置时钟计数器的当前值。10h中断调用共有16个功能。功能号为015。(1)设置显示方式(0号功能)入口参数:ah=0(功能号),al=设置方式(07)。出口参数:无。(2)设置光标类型(1号功能)入口参数:ah=1(功能号),ch=光标开始行,cl=光标结束行。出口参数:无。根据cx给出光标的大小。(3)设置光标位置(2号功能) 入口参数:ah=2(功能号),bh=页号,dh=行号,dl=列号。 出口参数:无。根据dx确定了光标位置。(4)读当前光标位置(3号功能)入口参数;ah=3(功能号
11、),bh=页号。出口参数:dh=行号,dl=列号,cx=光标大小。(5)初始窗口或向上滚动(6号功能)入口参列号。bh=空白行的属性。出口参数:无。当滚动后,底部为空白输入行。(6)初始窗口或向下滚动(7号功能)入口参数:ah=7,al=下滚行数,cx=下滚窗口左上角的行、列号。dx=下滚窗口右下角的行、列号。bh=空白行的属性。出口参数:无。当滚动后,顶部为空白输入行。(7)读当前光标位置的字符与属性(8号功能)入口参数:ah=08h,bh=页号。出口参数:al为读出的字符,ah为字符属性。(8)在当前光标位置写字符和属性(9号功能)入口参数:ah=9,bh=页号,al=字符的ascii码,
12、bl=字符属性,cx=写入字符数。出口参数:无。(9)在当前光标位置写字符(10号功能)入口参数:ah=0ah,bh=页号,al=字符的ascii码,cx=写入字符数。出口参数:无。(10)设置彩色组或背景颜色(11号功能)入口参数:ah=0bh,bh=0或1,bh为0时,设置背景颜色。当bh=1时 ,可设置彩色组,即为显示的像素点确定颜色组。出口参数:无。背颜色与对应值见表1.8。(11)写像素(12号功能)入口参数:ah=0ch,dx=行数,cx=列数,al=彩色值(al的d7为1,则彩色值与当前点内容作异或运算)。出口参数:无。(12)读像素(13号功能)入口参数:ah=0dh,dx=行
13、数,cx=列数。出口参数:al=彩色值。(13)写字符并移光标位置(14号功能)入口参数:ah=0eh,al=写入字符,bh=页号,bl=前景颜色(图形方式)。出口参数:无。主程序的流程如图1所示读控制键noyesno结束游戏初始化分数初始化产生砖块是否到底砖块到底后的操作计分游戏是否结束调用音乐是否重新开始暂停返回dos调用游戏屏幕不显示光标清屏开始移动砖块方向键yesnoyesnoq/qhome下落endyesnoyesnoyes 图1 程序框图4.2源程序及注释见附录一5 调试记录及结果分析 调试中通过单步运行方式来观察程序的走向,开是否是按设想的方向运行,若不是则,分析问题,修改源程序
14、,使之符合。程序运行结果如下 图2游戏开始 图3 方块左移 图4 方块右移 图5 方块旋转 图6 游戏结束程序运行中能够实现设计所要求的功能,所以此设计比较成功。6设计心得微机原理课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能。此外,我对bios调用和dos调用有了更深刻的认识。我尝试的编写了俄罗斯方块游戏,这对于我们来说是个挺大的困难,但我们克服了,我最终完成了程序,实现
15、了所有的功能,我很自豪。在整个程序的编写中,调试占了很大部分的时间。我认为要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握编译和执行的过程,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各
16、样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!7 参考文献1周佩玲等.微机原理与接口技术(第二版).北京:电子工业出版社,20082刘乐善.微型计算机接口技术及应用.武汉:华中科技大学出版社,20003姚燕南.微型计算机原理与接口技术.北京:高等教育出版社,2004附录一:源程序及注释;*宏定义*printstring m
17、acro x,y,mess ;less bl,cx ;*显示字符串*push bpmov dh,ymov dl,xmov bh,0lea bp,messmov al,1mov ah,13hint 10hpop bpendmstring macro ch,len ;*在光标位置显示字符及其属性*mov bh,0mov al,chmov cx,lenmov ah,9int 10hendmclrscr macro ;*清屏*mov ah,6mov bh,7mov cx,0mov dh,24mov dl,69int 10h endmclosecur macro ;*不显示光标*mov ah,1mov
18、ch,20hint 10hendmgotoxy macro x,y ;*设置光标位子*mov dh,ymov dl,xmov bh,0mov ah,2int 10hendmclrkey macro ;*清除键盘缓冲区,并调用一种键盘属性*mov ah,0chint 21hendmpushall macro ;*进栈保护现场*push axpush bxpush cxpush dxendmpopall macro ;*出栈恢复现场*pop dxpop cxpop bxpop axendmblock macro attr ;*在光标位置显示2次0dbh,属性为attrpush cxmov ah,9
19、mov al,0dbhmov bl,attrmov cx,2int 10hpop cxendmcprintf macro ch ;*在光标位置显示ch*mov ah,9mov al,chmov cx,1int 10hendmrandom macro ;*定义随机函数,随机产生砖块 mov ah,0 int 1ahmov al,dlmov cl,7div clmov al,ahcbwendmprintscore macro x,y,scro ;*显示分数*push bxgotoxy x,ypop bxmov bx,scromov cx,10000dcall dec_divpush bxgotox
20、y x+1,ypop bxmov cx,1000call dec_divpush bxgotoxy x+2,ypop bxmov cx,100call dec_divpush bxgotoxy x+3,ypop bxmov cx,10call dec_divpush bxgotoxy x+4,ypop bxmov cx,1call dec_divendm;*初始化定义*left equ 4b00hright equ 4d00hup equ 4800hdown equ 5000hhome equ 4700henda equ 4f00hempty equ 0brick equ 1wall equ
21、2move_down equ 0 ;砖块下移move_left equ 1 ;砖块左移move_right equ 2 ;砖右移块revolve equ 3 ;砖块旋转yes equ 1no equ 0;get equ 0;put equ 1;cal equ 2background equ 5 ;背景颜色bar_attr equ 6ah ;边框颜色board_width equ 12 ;10 ;游戏方框宽度board_height equ 18 ;游方框戏高度board_left equ 16 ;游戏方框左边位子board_top equ 3 ;游戏方框上边位子board_attr equ 7
22、eh ;游戏方框边框颜色board_back equ 7score_left equ 49 ;计分方框左边位子score_top equ 11 ;计分方框上边位子score_width equ 14 ;计分方框宽度score_height equ 10 ;计分方框高度score_attr equ 46 ;计分方框边框颜色score1 equ 1score2 equ 100next_left equ 49 ;next方框左边位子next_top equ 2 ;next方框上边位子next_width equ 14 ;next方框宽度next_height equ 6 ;next方框高度next_
23、attr equ 7eh ;next方框边框颜色data segment;*定义砖块*brick_set db 1,1,1,1,0,0 ;*正七* db 1,1,1,0,1,0 ;*丁子形* db 1,1,1,0,0,1 ;*反七* db 1,1,0,0,1,1 ;*正二* db 0,1,1,1,1,0 ;*反二* db 1,1,0,1,1,0 ;*方块*array db (board_height+2)*(board_width+2) dup(0) row_down_offset db board_height dup(?)xp db ?yp db ?brick_no dw ? ;砖块号do
24、wn_speed dw ? ;下落速度ticket dw ?time_set dw ?down_offset db ? ;能消去的行数gover db ? ;游戏结束标志over dw ?next_brick_no dw ? ;下一个砖块号next_set dw 2reach_bottom dw nokey dw ? ;输入的控制键current_score dw 0high_score dw 0level dw 200i db 0j db 0t dw 0x1 db 0x2 db 0x3 db 0x4 db 0y db 0mable dw ? ;砖块是否能移动标志mess1 db 0b3h,
25、russian brick game ,0b3hmess2 db help ,0b3h, q: exit game home: new game end: pause up: rotatemess3 db 0b3h,0b1h,0b1hmess4 db 0b1h,0b0hmess5 db 0b2h,0b1h,0b0hmess6 db 0b0h,0b1h,0b0hmess7 db high score:mess8 db speed:mess9 db score:mess10 db next brick:mess11 db try again?(y/n)mess12 db 0;*声音*mus_fre
26、q dw 330,294,262,294,3 dup(330) dw 3 dup(294),330,392,392 dw 330,294,262,294,4 dup(330) dw 294,294,330,294,262,-1mus_time dw 6 dup(25),50 dw 2 dup (25,25,50) dw 12 dup(25),100data ends;*堆栈段定义*stack segmentdw 100 dup(?) ;*初始化* tos label word stack ends;*代码段*code segmentmain proc farassume cs:code,ds:
27、data,es:data,ss:stackstart:mov ax,datamov ds,axmov es,axmov ax,stackmov ss,axmov sp,offset tosclrscr ;清屏closecur ;不显示光标mov al,1ch ;取中断向量mov ah,35hint 21hpush espush bxpush ds ;设置中断向量mov dx,offset new_intmov ax,seg new_intmov ds,axmov al,1chmov ah,25hint 21hpop ds while1:call game_screen ;调用游戏屏幕call
28、new_game ;游戏初始化call score ;分数初始化 do:call generate ;产生砖块mov over,1mov reach_bottom,nowhile2:cmp over,1 jne rb0cmp reach_bottom,yes ;判断是否到底je rb0 ;若到底,则跳至rb0jmp rb1 ;若没到底,则跳至rb1rb0: jmp rbrb1:mov ah,1 ;*从键盘读字符*int 16hjz key0mov ah,0int 16hmov key,ax ;将从键盘输入的字符赋给keyjmp clkkey0:mov key,0 ;将key置0clk:clrk
29、ey ;*清除键盘缓冲区,并调用一种键盘属性*switch: mov ax,key cmp al,q ;按q或者q键退出 je exit50 cmp al,q je exit50 cmp ax,homeje hom ;重新游戏cmp key,endaje en ;暂停游戏cmp ax,left ;判断是否按下向左功能键je movleft ;砖块左移cmp ax,right ;判断是否按下向右功能键je movr ;砖块右移cmp ax,down ;判断是否按下向下功能键je movd ;砖块下移cmp ax,up ;判断是否按下旋转功能键je revo ;砖块旋转mov ax,move_do
30、wnpush axcall moveable ;*判断能否移动,产生移动标志mable*mov ax,1sub ax,mablemov reach_bottom,axjmp tmexit50: jmp exit5revo: jmp movrevolvemovr: jmp movrightmovd: jmp movdownhom: ;按下home键mov cx,mess12-mess11 mov bl,74hprintstring board_left+6,board_top+3,mess11 ;显示try again?(y/n)字符串mov ah,0int 16hcmp al,nje exit
31、50call new_gamemov reach_bottom,yesmov current_score,0jmp while2en: ;按下end键mov ah,0int 16hmov time_set,8while20:jmp while2;*砖块移动控制*movleft:mov ax,move_leftpush axcall moveable ;*判断能否移动,产生移动标志mable*cmp mable,yes jne while20mov ax,move_leftpush axcall movejmp while2movright: mov ax,move_rightpush axca
32、ll moveable ;*判断能否移动,产生移动标志mable*cmp mable,yesjne while20mov ax,move_rightpush axcall movejmp while2movdown: mov ax,move_down push axcall moveable ;*判断能否移动,产生移动标志mable*cmp mable,yesjne rbmov ax,move_downpush axcall movejmp while2movrevolve: mov ax,revolvepush axcall moveable ;*判断能否移动,产生移动标志mable*cmp
33、 mable,yesjne while20mov ax,revolvepush axcall movejmp while2tm: ;判断砖块是否到底cmp reach_bottom,1je rbf1:mov ah,1int 16hjnz f2mov ax,10sub ax,down_speedcmp time_set,axja f2cmp time_set,axjb f1mov ax,move_downpush axcall movemov time_set,0jmp while2f2: mov ax,10sub ax,down_speedcmp time_set,axjb whmov ove
34、r,0 wh:jmp while2rb: call brick_reach_bottom ;*砖块到底之后执行的操作* call score ;调用计分框子程序call game_over ;调用game_over子程序cmp gover,1 ;判断游戏是否结束je renew ;若结束,跳至renewjmp do ;若没结束,跳至dorenew: call musicjmp homexit5:pop dxpop dsmov al,1chmov ah,25hint 21hclrscr;opencurmov ah,4chint 21h retmain endp;*显示下一块*show_next
35、proc nearpush bpmov bp,sppush axpush bxpush cxpush dxcmp word ptr bp+6,6 ;*判断是否为第六块砖*jae stick ;是则跳到stick,画出长条,否则直接调用砖块*mov ch,0cl0:mov cl,0judge:mov al,3mul chadd al,clcbwmov bx,bp+6xchg ax,bxmov dl,6mul dladd bx,axcmp brick_setbx,0je cl1mov al,clshl al,1add al,next_left+5mov ah,chadd ah,next_topad
36、d ah,4gotoxy al,ahmov bx,bp+4block blcl1:inc clcmp cl,3jb judgeinc chcmp ch,2jb cl0jmp exitstick:mov cl,0cir:mov al,clshl al,1add al,next_left+4gotoxy al,next_top+4mov bx,bp+4block blinc clcmp cl,4jb cirexit:pop dxpop cxpop bxpop axpop bpret 4show_next endp;*显示背景*disp_ground proc nearpush axpush bxp
37、ush cxpush dxgotoxy 0,0mov ah,09hmov bh,0mov bl,bar_attrmov al, mov cx,80int 10hmov ah,13hmov dh,0mov dl,24mov cx,mess2-mess1mov bh,0mov al,0mov bl,bar_attrlea bp,mess1int 10hmov dl,0dhmov ah,2int 21hmov dl,0ahint 21hmov i,1j0:mov j,0three:mov dh,imov al,3mul jmov dl,almov cx,mess4-mess3mov bh,0mov
38、al,1mov bl,backgroundlea bp,mess3mov ah,13hint 10hinc jcmp j,27jb threeinc icmp i,24jb j0gotoxy 0,24mov ah,9mov bh,0mov bl,bar_attrmov al, mov cx,80int 10hmov ah,13hmov dh,24mov dl,1mov cx,mess3-mess2mov bh,0mov al,0mov bl,bar_attrlea bp,mess2int 10hpop dxpop cxpop bxpop axretdisp_ground endp;*显示框架*
39、disp_box proc nearpush bpmov bp,sppushallmov bx,bp+4mov dx,bp+12mov ax,bp+10mov dh,almov x1,dlpush dxinc dlmov x2,dlmov ax,bp+8mov t,axadd dl,almov x3,dlinc dlmov x4,dlmov y,dhpop dxmov bh,0mov ah,2int 10hcprintf 0c9hgotoxy x2,ystring 0cdh,tgotoxy x3,ycprintf 0bbhmov cx,bp+6body:push cxinc ygotoxy x
40、1,ymov bx,bp+4cprintf 0bahgotoxy x2,ystring ,tgotoxy x3,ycprintf 0bahpop cxloop bodyinc ymov bx,bp+4gotoxy x1,ycprintf 0c8hgotoxy x2,ystring 0cdh,tgotoxy x3,ycprintf 0bchexit0:popallpop bpret 10disp_box endp;*游戏运行屏幕*game_screen proc nearpushallmov ax,datamov ds,axmov es,axcall disp_ground ;*调用disp_g
41、round显示游戏运行时背景* ;*此段功能为保存游戏运行框架的各个参数*mov ax,board_left push axmov ax,board_toppush axmov ax,board_width*2push axmov ax,board_heightpush axmov ax,7eh;board_attrpush axcall disp_box ;*调用参数使游戏框架显示出来* ;此段功能为保存分数框架各个参数*mov ax,score_leftpush axmov ax,score_toppush axmov ax,score_widthpush axmov ax,score_h
42、eightpush axmov ax,score_attrpush axcall disp_box ;*调用参数使分数框架显示出来* ;此段功能为保存显示下一块框架的各个参数*mov ax,next_leftpush axmov ax,next_toppush axmov ax,next_widthpush axmov ax,next_heightpush axmov ax,next_attrpush axcall disp_box ;*调用参数使显示下一块的框架显示出来*mov bl,score_attrmov cx,mess8-mess7printstring score_left+2,s
43、core_top+1,mess7 ;在光标位置显示字符串high scoremov cx,mess9-mess8printstring score_left+2,score_top+3,mess8 ;在光标位置显示字符串speedmov cx,mess10-mess9printstring score_left+2,score_top+5,mess9 ;在光标位置显示字符串scoremov bl,next_attrmov cx,mess11-mess10printstring next_left+2,next_top+1,mess10popallretgame_screen endp;*画砖画
44、墙子函数*draw proc nearpush bpmov bp,sppushallmov bx,bp+4 ;bp+4保存的是砖块号加8后的颜色属性* mov al,board_attr ;墙壁颜色属性*and al,0f0h ;al为70hor bl,al ;转化为显示砖块颜色,即使砖块色与背景色不同mov si,bx cmp word ptr bp+6,brick je drawbrick ;*调用画砖函数*;*画墙* drawwall:mov i,0jsd:mov j,0g0: ;此段功能为从屏幕左上角至屏幕右下角mov ax,0mov al,2 mul jadd al,board_left+1mov cl,iadd cl,board_top+1gotoxy al,clmov ax,board_width+2mul iadd al,jmov bx,axmov di,bxmov cx,bp+6cmp arraybx,wall jb nextblock arraybxmov bx,dinext:cmp arraybx,emptyjne j1mov bx,sistring ,2j1:inc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年粤人版选修4地理上册阶段测试试卷含答案
- 2025年冀教新版选择性必修1生物上册月考试卷含答案
- 2025年粤教版七年级物理下册月考试卷
- 2025年统编版必修2生物上册月考试卷含答案
- 二零二五年度水上运输合同标的船舶检验与维护协议4篇
- 二零二五版市政排水管网改造升级施工劳务分包合同4篇
- 担保合同信息协议书(2篇)
- 二零二五版婴幼儿奶粉线上线下同步促销活动合同4篇
- 沿街旺铺租赁合同(2025版)6篇
- 2025年度门卫劳务与社区治理合作合同4篇
- 物业民法典知识培训课件
- 2023年初中毕业生信息技术中考知识点详解
- 2024-2025学年八年级数学人教版上册寒假作业(综合复习能力提升篇)(含答案)
- 《万方数据资源介绍》课件
- 医生定期考核简易程序述职报告范文(10篇)
- 第一章-地震工程学概论
- 《中国糖尿病防治指南(2024版)》更新要点解读
- 初级创伤救治课件
- 交通运输类专业生涯发展展示
- 2024年山东省公务员录用考试《行测》试题及答案解析
- 神经重症气管切开患者气道功能康复与管理专家共识(2024)解读
评论
0/150
提交评论