汇编语言程序设计动画飞机.doc_第1页
汇编语言程序设计动画飞机.doc_第2页
汇编语言程序设计动画飞机.doc_第3页
汇编语言程序设计动画飞机.doc_第4页
汇编语言程序设计动画飞机.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录前言- 2 -第一章 原理图的绘制- 3 -1.1 电原理图sch的绘制- 3 -1.1.1 在Altium Designer中建立文件- 3 -1.1.2 绘制电原理图- 3 -1.2 SCH生成PCB印制板图- 6 -1.2.1 建立PCB文件- 6 -1.2.2 将SCH文件生成PCB文件- 6 -1.3 绘制单片机原理图- 7 -第二章 汇编语言程序设计- 7 -总结- 10 -参考文献- 11 -附录- 12 -附录1 单片机原理图- 12 -附录2 程序清单与注释- 13 - 30 -前言 微机应用系统设计与综合实验(实践)是本科教学过程中的重要环节,是不可缺少的、重要的实践性教学环境。本次课程设计的目的主要是培养我们运用所学知识解决计算机应用领域内的实际问题,进一步提高我们微机系统设计与综合实践的能力,应用汇编语言综合编程能力、程序调试技巧和微机操作系统分析及操作系统接口综合应用能力。按照微机应用系统设计与综合实验(实践任务书的要求,我选择了三个方面的内容,设计课题分别为:一、利用电路设计与制版软件Altium Designer绘制函数发生器中的各种电原理图和印制版图。二、利用Altium Designer或Visio绘制单片机原理图。其中原理图中要包含下内容:CPU电路,A/D与D/A转换电路,键盘输入输出电路与显示电路,开关量通道电路,通信电路及电源电路。三、用汇编语言编程编写一个程序。要求是:用汇编语言编程编写一个在DOS环境下使用的微型机屏幕保护程序(不能使用“黑屏”法,只能用“变换曲线”等方法)。程序设计主要是基于我们所学习的80x86指令系统与汇编语言,实施方案是用助记符指令表达汇编语言程序,按照题目所要实现的结果,将实现过程用汇编语言程序表达出来,然后借助于系统通过汇编程序软件的翻译,将汇编语言程序变成机器代码程序,即目标程序,最后经连接定位后可由机器执行。完成上述的三个方面的内容,即是本次课程设计的目的,最终实现我们灵活运用汇编语言以及熟悉掌握绘图软件的使用的目标,为以后应用这些软件打好了良好的基础。完成本次课程设计,也要感谢两位老师的指导,得以让本次课程设计顺利的完成。第一章 原理图的绘制 Altium Designer软件是Protel软件的原厂商Altium公司推出的Protel系列的新高端本。它除了全面集成了包括99SE,Protel 2004在内的闲钱一系列版本的功能和优点以外,还增加了许多改进和高端功能。1.1 电原理图sch的绘制 原理图的设计流程如下:开始进入原理图编辑器设置图纸规格设置原理图编辑器系统参数放置元件、导线等相关元件原理图的调整报表输出文件保存及打印输出结束 1.1.1 在Altium Designer中建立文件 从Files面板中启动原理图编辑器:启动Altium Designer。点击系统面板标签“system”,在其弹出的菜单中选择“Files”,打开Files面板。在Files面板的“Open a document”区域中双击原理图文件名,启动原理图编辑器,打开一个已有的原理图文件。在Files面板的“Open a document”区域中双击项目名称,弹出Projects面板,在项目面板中双击原理图文件名称,启动原理图编辑器,打开一个已有的项目中的原理图文件。在Files面板的“new”区域中单击“Schematic Sheet”,启动原理图编辑器,同时新建一个默认名称为“Sheet1.SchDoc”的原理图文件。1.1.2 绘制电原理图 1)创建一个PCB项目 A、启动Altium Designer。B、执行菜单命令FileNewProjectPCB Project,弹出选择PCB项目面板,见下图。 C、项目面板中显示的是系统已默认默认名称创建的新项目文件“PCB Project1.PriPCB”,执行菜单命令FileSave Project,在弹出的保存文件对话框中,在文件名称文本框中输入文件名,单击“保存”按钮,项目即以所输入的名称保存在默认文件夹“Examples”中,也可以指定别的保存路径,菜单命令为FileSave as。2)为项目添加原理图文件 A、执行菜单命令FileNewSchematic,在所命名的项目中创建一个新的原理图文件,此时在项目面板中下面出现“Sheet.SchDoc”文件名称。 B、执行菜单命令FileSave,在弹出的保存文件文件对话框中输入文件名,单击“保存”按钮,见下图。执行菜单命令FileSave as,文件另存为。 3)打开库文件面板 A、执行菜单命令DesignBrowes Library,或单击面板标签System,选中库文件面板“Libraries”,弹出库文件面板,见下图。 B、在库文件面板中,双击当前文件名称,即可放置元件。Altium Designer系统默认打开的集合元件库中有两个时常用的,常用分立元器件库Miscellaneous Devices.Intlib和常用接插件库Miscellaneous Connectors.Intlib。C、选择元器件在我选择的电原理图中所用到的元器件,以及元件所在的零件库如下表所示:元件零件名零件库电阻RES2Miscellaneous Devices.lib电容CAPMiscellaneous Devices.lib二极管DIODEMiscellaneous Devices.lib可调电阻POT2Miscellaneous Devices.lib三极管NPNMiscellaneous Devices.lib芯片E1-16Analog Devices.lib 4)连接元器件在writing tools工具栏中选择接线,把各元器件用导线连接起来。在需要的地方,还要设置相应的网路标号,还有电源地的设置。1.2 SCH生成PCB印制板图1.2.1 建立PCB文件在Documents目录下新建一个PCB文件,使SCH和PCB文件在同一个目录下。1.2.2 将SCH文件生成PCB文件1)在Libraries中依照1.1节所提到的步骤,添加自动布线要用到的封装库。2)对所有元器件进行封装。在SCH中,选择每个元器件,在它们的属性中的PCB设置中,输入每个元器件所对应的封装零件名。所用的元器件所对应的封装零件名以及所在零件封装库名如下表所示:元件封装零件名所在封装库名电阻AXIAL0.3PCB Footprints.lib电容RAD0.1PCB Footprints.lib可调电阻VR1PCB Footprints.lib二极管DIODE0.4PCB Footprints.lib三极管TO-126PCB Footprints.lib三极管TO-126PCB Footprints.lib3)将所有元器件都封装完以后,在Design下拉菜单中点击“UpdatePCB”更新PCB,如果在零件封装时出现问题,在执行此步骤时,会给出相应的提示,可以根据提示在SCH图中进行修改,直至没有错误出现为止。4)导入SCH更新后,在PCB的“View”下拉菜单中选择“Fit Board”,这样,零件就都可以显示出来了,与SCH图中是一一对应的关系。5)在PCB文件中画一个PCB的外型框,然后把PCB零件封装移动到自己所画的外型框中。6)对元件适当的进行一下布局,然后校验一下,看是否有错误,没有错误就可以开始自动布线了。在Auto Route下拉菜单中选择“All”,在弹出的对话框中,进行设置,然后点击“Route All”。自动布线完成后弹出对话框,点击“OK”。PCB图就这样完成了。1.3 绘制单片机原理图单片机原理图的绘制与1.1节中提到的用Altium Designer绘制电原理图的步骤是一致的,在这里不再赘述。绘制的单片机原理图见附录1。第二章 汇编语言程序设计用汇编语言编程编写一个程序。要求是:用汇编语言编程编写一个动画程序:有一架飞机在显示屏上方,从左至右,忽高忽低,周而复始的飞行,屏幕下方设有一架高射炮,该高射炮可人工控制左右移动,人工控制空格键发射炮弹,炮弹命中飞机后,声光大作。(要求使用图形显示方式)。 此次编程主要用到INT 10H指令。INT 10H 中断简介 INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内。使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用 INT 10H。下表是它们的说明:AH=00HAH=00/INT 10H 是用来设定显示模式的服务程序,AL 寄存器表示欲设定的模式:此次编程时设置AL=05,即分辨率为320*200。AH=0BH这个服务程序是选择调色盘。显示模式 5 是 320*200 的图形模式,最多可以显示 4 种颜色,这四种颜色的意思是最多可以同时显示一种背景色及三种前景色,而这三种前景色有两种方式可供选择,因此事实上,在显示模式 5 有两种调色盘可供选择。就好像您去买 12 种颜色的水彩,但可在调色盘上以任意比例搭配出许多种颜色。调色盘 0 的三色是绿、红、黄;调色盘 1 的三色是青、紫红、白。背景色有 16 六种可供选择,这 16 种就是注一的 16 色。调用此中断时,先决定要设定背景色抑或调色盘,1)要设定背景色时,则使 BH 为 0,再使 BL 之数值为 0 到 0fh 之间表示注一的 16 色之一。 2)要设定调色盘时,则使 BH 为 1。再设定 BL 为零或一表示选择那一种调色盘。 背景色只有在前景色为 0 时才会显现出来。AH=0Ch/INT 10H 这个服务程序是在绘图模式中显示一点 ( 也就是写入点像,write graphics pixel ),而 AH=0DH/INT 10H 则是读取点像 ( read graphics pixel )。写入时,要写入位置 X 座标存于 CX 寄存器,Y 座标存于 DX 寄存器,颜色存于 AL 寄存器。和文字模式相同,萤光幕上的 Y 座标是最上面一列为零,越下面越大,X 座标则和数学的定义相同。CX、DX、AL 值之范围与显示模式有关:AH=0DH/INT 10H 则是读取某一位置之点像,您必须指定 CX、DX,而 INT 10H 会传回该位置点像之颜色。AH=0EH这个子程序是使显示器像打字机一样的显示字符来,在前面用 AH=09H/INT 10H 和 AH=0AH/INT 10H 都可以在萤光幕上显示字符,但是这两奘方式显示字符之后,光标位置并不移动,而 AH=0EH/INT 10H 则会使光标位置移动,每显示一个字符,光标会往右移一格,假如已经到最右边了,则光标会移到最左边并移到下一列,假如已经移到最下面一列的最右边,则屏幕会向上卷动。AL 寄存器存要显示的字符,BH 为目前的显示页,如果是在图形模式,则 BH 须设为 0,假如是在图形模式下,也可以设定 BL 来表示文字的颜色,文字模式下的 BL 则无功能。总结 微机应用系统设计与综合实验(实践)作为自动化本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以Intelx86CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。在大三接触汇编语言之前,我们在计算机组成原理课程中就已经有所了解了,但也只是略微明白一些如jmp,mov这样的指令,极度缺乏系统性的学习。但在接触这门课程后,感到汇编语言并不是很容易就可以弄懂的。相比较以前学过的高级语言如C等,电脑等于在迁就人的思维方式,但学汇编,人却必须要去迁就电脑的思维方式,要设身处地地用电脑的角度去思考问题,这是我学习汇编语言时遇到的最大的障碍。另外,在C语言中不到10个语句构成的程序,用汇编语言却要好几十行甚至上百行。这不得不让我对汇编产生一种恐惧感。但经过这次微机原理课程设计的时间,我发现这是完全不必要的。一旦对它的原理掌握后,编写程序就容易多了。另外,经过这次设计实践和学习,让我更加了解计算机内部的组织结构,提升了汇编编程的综合能力。我明白了汇编的学习不仅仅是学习其语法,而更多的是学习计算机基本的体系结构。其中遇到使用新的概念,名字,指令时,自己要采用亲手查资料和亲手编程的方式也就渐渐清晰明了。经过这次课程设计,我也慢慢摸出了汇编学习的规律。首先,学习这门语言时如果能联系上以前学过的其他高级语言的知识,则会起到良好的效果。例如C语言程序的运行逻辑结构有顺序(按语句依次执行)、分支结构(IF.THEN.ELSE.),循环结构(FOR.NEXT)三种结构,也通过C语言了解并掌握了什么是子程序,什么是调用。事实上,汇编语言中有关程序结构,子程序等等的知识都是跟C语言十分相似的,只是在编程时用到的语言不同:汇编语言完全面向机器,需要指明数据在寄存器、内存中的流向。第二,学习汇编语言,首要问题是学习80X86指令系统。如果能将指令系统中的各个助记符、格式等都能完全掌握并灵活运用,大部分工作就已经完成了。指令系统确定了CPU所能完成的功能,是用汇编语言进行程序设计的最基本部分。如果不熟悉汇编指令的功能及其有关规定,那肯定不能灵活使用汇编语言。在编写汇编程序时,应该注意特别容易出现的错误,例如在编写数据传送指令时,目的操作数和源操作数的类型一定要匹配,CS不能作为目的操作数,offset后只能跟简单地址符号,等等。汇编语言中的程序结构,子程序等知识也会帮助我们编写出一个更加完善的汇编程序。另外,我们还应该掌握DOS系统功能调用,宏汇编等知识。这里要对子程序和宏汇编加以区分,我的理解是:子程序是调用,而宏是替换,比如一个MAX宏,所有出现MAX的地方,都用宏代码代替。还有一点十分重要。和所有的程序设计语言一样,要学好汇编语言,实验是必不可少的环节。我深有体会:书上的程序都能看懂,基本原理也都明白,但是在自己亲手编写程序时,却无从下手,甚至连第一句该怎么写都不知道。通过实验,可以在很大程度上加深印象。在书上看程序,一切都是理所当然,十分顺利,而自己动手,才会真正发现自己的不足之处。程序的编写在记事本中进行即可,掌握debug的使用对实验是有很大帮助的。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。现在汇编语言的课程设计即将结束了,设计过程中遇到的所有困难以及遗留的难点都需要我逐步攻克,其中也充满了困惑和喜悦。此外,在黎群辉和伍侠云两位老师的身上我学得到很多实用的知识,在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!参考文献微型计算机原理与接口技术 周荷琴、吴秀清编著 中国科学技术大学出版社IBM-PC汇编语言程序设计(第二版) 沈美明、温冬婵编著清华大学出版社Altium Designer实用宝典原理图与PCB设计 闫胜利编著电子工业出版社Altium Designer完全电路设计 张义和编著 机械工业出版社附录附录1 单片机原理图附录2 程序清单与注释DATA SEGMENTP_X DW 145 ;高射炮起始左下角横坐标150P_Y DW 195 ;高射炮起始左下角纵坐标195P_PIX DB 1 ;高射炮颜色PD_PIX DB 2 ;炮弹颜色PD1_X DW 0 ;炮弹1起始横坐标PD1_Y DW 0 ;炮弹1起始纵坐标PD1_BOOR DW 0;炮弹1标志,1:画炮弹,0:不画炮弹PD2 DW 0,0,0 ;炮弹2起始坐标,标志PD3 DW 0,0,0 ;炮弹3起始坐标,标志PD4 DW 0,0,0 ;炮弹4起始坐标,标志PD5 DW 0,0,0 ;炮弹5起始坐标,标志PD6 DW 0,0,0 ;炮弹6起始坐标,标志PD7 DW 0,0,0 ;炮弹7起始坐标,标志PD8 DW 0,0,0 ;炮弹8起始坐标,标志PD9 DW 0,0,0 ;炮弹9起始坐标,标志PDA DW 0,0,0 ;炮弹A起始坐标,标志PDB DW 0,0,0 ;炮弹B起始坐标,标志PDC DW 0,0,0 ;炮弹C起始坐标,标志C_X DW 0C_Y DW 0C_X0 DW 0 ;飞机中心坐标C_Y0 DW 75C_R DB 37 ;半径C_PIX DB 3 ;飞机颜色C_D DB 0 C_LX DW 0 ;飞机左下角坐标C_LY DW 75C_BOOR DB 10 ;飞机运行标志,大于10上升,小于10下降F_BOOR DB 0 ;飞机击中标志FREQ_LIST DW 371,495,495,495,624,556,0 ;频率表TIME_LIST DB 4, 6, 2, 4, 4, 6 ;时间表F_NUM DB 0T_NUM DB 0DATA ENDSSTACKS SEGMENT DB 128 DUP (?)STACKS ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSINCLUDE J:1.52pao.asmINCLUDE J:1.52FEIJI.ASMSTART:MOV AX,DATA MOV DS,AX MOV AH,0 MOV AL,5 ;320*200 4色方式 INT 10HLOOP1: mov ax,0600h ;清屏 mov bh,00 mov cx,0000h mov dx,184fh int 10h MOV AH,0BH ;选择调色盘 MOV BH,01 MOV BL,0 ;绿、红、黄调色盘 INT 10H CALL PAO CALL DAOHANG CALL HANG1 CALL DELAY MOV AH,01H INT 16H JZ LOOP1 LOOP2: mov ah,00h ;按键判断左右控制大炮,空格发射炮弹,esc退出 int 16h CMP AX,4B00H JE PR1 CMP AX,4D00H JE PR2 CMP AL,20H JE PR3 CMP AL,1BH JE QUIT JMP LOOP1 ;左移PR1: SUB P_X,9 CMP P_X,5 JG PR11 MOV P_X,5 PR11: JMP LOOP1 ;右移PR2: ADD P_X,9 CMP P_X,285 JB PR21 MOV P_X,285 PR21: JMP LOOP1 ;发射 PR3: PUSH AX PUSH BX PUSH CX PUSH DX MOV CX,12 MOV BX,OFFSET PD1_XL1: CMP BX+4,0 JZ L2 ADD BX,6 LOOP L1L2: MOV AX,P_X ;炮弹初始坐标 ADD AX,14 MOV BX,AX MOV AX,P_Y SUB AX,15 MOV BX+2,AX MOV DX,1 MOV BX+4,1 ;允许画炮弹 POP DX POP CX POP BX POP AX JMP LOOP1QUIT: MOV AH,4CH INT 21H DELAY PROC NEAR PUSH CX PUSH DX PUSH BX PUSH AX MOV DX,5000DL1: MOV CX,5500DL2: MOV AH,01H LOOP DL2 DEC DX JNZ DL1 POP AX POP BX POP DX POP CX RETDELAY ENDPPAOSHENG PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH SIPUSH DI MOV DX,43H ;初始化8254工作方式 MOV AL,0B6H ;定时器3、方式3 OUT DX,AL MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址 MOV DI,OFFSET TIME_LIST ;装入时间表起始地址 MOV BX,0 MOV BL,F_NUM ADD SI,BX MOV BL,T_NUM ADD DI,BX MOV DX,61H IN AL,DX PUSH AX OR AL,03H OUT DX,AL MOV DX,0FH ;输入时钟为1.0416667MHz,1.0416667M = 0FE502H MOV AX,0E502H DIV WORD PTR SI ;取出频率值计算计数初值,0F4240H / 输出频率 MOV DX,42H OUT DX,AL ;装入计数初值 MOV AL,AH OUT DX,AL MOV DL,DI ;取出演奏相对时间,调用延时子程序 CALL DALLY1 ADD SI,2 INC DI ADD F_NUM,2 INC T_NUM POP AX MOV DX,61H OUT DX,ALPOP DIPOP SIPOP DXPOP CXPOP BXPOP AXRETPAOSHENG ENDPDALLY1 PROC ;延时子程序D0: MOV CX,200HD1: MOV AX,0FFFFHD2: DEC AX JNZ D2 LOOP D1 DEC DL JNZ D0 RETDALLY1 ENDPCODE ENDS END START;飞机程序HANG PROC NEAR ;飞机飞行路线 PUSH AX PUSH BX PUSH CX PUSH DX CALL FEIJI MOV AX,C_Y0 CMP C_BOOR,10 JNE H_L3 CALL RAND ;产生飞机飞行参数,0-20的随机数 MOV C_BOOR,BL H_L3: CMP C_BOOR,10 JL H_L4 MOV BL,C_BOOR ;大于10飞机上升,单步上升2格,上升c_boor-10次 DEC BL MOV C_BOOR,BL SUB AX,2 JMP H_L5H_L4: MOV BL,C_BOOR ;大于10飞机上升,单步上升2格,下降10-c_boor次 INC BL MOV C_BOOR,BL ADD AX,2H_L5: CMP AX,100 ;飞机飞行下限 JB H_L1 MOV AX,100 H_L1: CMP AX,50 ;飞机飞行上限 JA H_L2 MOV AX,50H_L2: MOV C_Y0,AX MOV AX,C_X0 ;横向飞行 ADD AX,5 MOV C_X0,AX CMP C_X0,310 ;右边界 JB H_L6 MOV AX,0 MOV C_X0,AX MOV AX,75 MOV C_Y0,AX MOV AL,10 MOV C_BOOR,ALH_L6: POP DX POP CX POP BX POP AXRETHANG ENDPFEIJI PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV BX,C_X0; ADD BX,5 MOV C_LX,BX MOV AH,0CH MOV AL,3 MOV DI,5H MOV DX,C_Y0 F_2: MOV SI,50 MOV CX,C_X0F_1: INT 10H INC CX DEC SI JNZ F_1 DEC DX DEC DI JNZ F_2 MOV AL,1H MOV DI,10 MOV DX,C_Y0 SUB DX,5HF_4: MOV SI,5H MOV CX,C_X0F_3: INT 10H INC CX DEC SI JNZ F_3 DEC DX DEC DI JNZ F_4 MOV AL,1H MOV DI,5 MOV DX,C_Y0 SUB DX,5HF_6: MOV SI,5H MOV CX,C_X0 ADD CX,35F_5: INT 10H INC CX DEC SI JNZ F_5 DEC DX DEC DI JNZ F_6 POP DI POP SI POP DX POP CX POP BX POP AX RETFEIJI ENDP RAND PROC ;产生随机数 PUSH CX PUSH DX PUSH AX STI MOV AH,0 ;读时钟计数器值 INT 1AH MOV AX,DX ;清高6位 AND AH,3 MOV DL,21 ;除101,产生0100余数 DIV DL MOV BL,AH ;余数存BX,作随机数 POP AX POP DX POP CX RETRAND ENDPBAOZHA1 PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AX,0 MOV C_X,AX MOV AL,20 ;半径 MOV C_Y,AX MOV AX,1 SBB AL,20 MOV C_D,ALB_LOOP1: CALL PUTDOT1 MOV BL,C_D CMP BL,0 JG B_L1 MOV AX,C_X MOV CX,2 IMUL CX ADC AX,3 ADC AL,C_D MOV C_D,AL JMP B_L2B_L1: MOV AX,C_X MOV DX,C_Y ADC AX,DX MOV CX,2 IMUL CX ADC AX,5 ADC AL,C_D MOV C_D,AL MOV AX,C_Y DEC AX MOV C_Y,AXB_L2: MOV AX,C_X INC AX MOV C_X,AX MOV CX,C_X MOV DX,C_Y CMP CX,DX JLE B_LOOP1 POP DX POP CX POP BX POP AX RETBAOZHA1 ENDPBAOZHA2 PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AX,0 MOV C_X,AX MOV AL,10 ;半径 MOV C_Y,AX MOV AX,1 SBB AL,10 MOV C_D,ALB_LOOP2: CALL PUTDOT1 MOV BL,C_D CMP BL,0 JG B_L3 MOV AX,C_X MOV CX,2 IMUL CX ADC AX,3 ADC AL,C_D MOV C_D,AL JMP B_L4B_L3: MOV AX,C_X MOV DX,C_Y ADC AX,DX MOV CX,2 IMUL CX ADC AX,5 ADC AL,C_D MOV C_D,AL MOV AX,C_Y DEC AX MOV C_Y,AXB_L4: MOV AX,C_X INC AX MOV C_X,AX MOV CX,C_X MOV DX,C_Y CMP CX,DX JLE B_LOOP2 POP DX POP CX POP BX POP AXRETBAOZHA2 ENDPPUTDOT1 PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AX,C_X0 ;X0+X,Y0+Y ADD AX,C_X MOV CX,AX MOV AX,C_Y0 ADD AX,C_Y MOV DX,AX SUB DX,20 MOV BX,C_X0 ;X0-X SBB BX,C_XO1_LOOP1: MOV AH,0CH ;写入点像 MOV AL,1 ;装入颜色 INT 10H DEC CX CMP CX,BX JG O1_LOOP1 MOV AX,C_X0 ;X0+X,Y0-Y ADD AX,C_X MOV CX,AX MOV AX,C_Y0 SBB AX,C_Y MOV DX,AX SUB DX,20 MOV BX,C_X0 ;X0-X SBB BX,C_XO1_LOOP2: MOV AH,0CH ;写入点像 MOV AL,1 ;装入颜色 INT 10H DEC CX CMP CX,BX JG O1_LOOP2 MOV AX,C_X0 ;X0+Y,Y0+X ADD AX,C_Y MOV CX,AX MOV AX,C_Y0 ADD AX,C_X MOV DX,AX SUB DX,20 MOV BX,C_X0 ;X0-Y SBB BX,C_YO1_LOOP3: MOV AH,0CH ;写入点像 MOV AL,1 ;装入颜色 INT 10H DEC CX CMP CX,BX JG O1_LOOP3 MOV AX,C_X0 ;X0+Y,Y0-X ADD AX,C_Y MOV CX,AX MOV AX,C_Y0 SBB AX,C_X MOV DX,AX SUB DX,20 MOV BX,C_X0 ;X0-Y SBB BX,C_YO1_LOOP4: MOV AH,0CH ;写入点像 MOV AL,1 ;装入颜色 INT 10H DEC CX CMP CX,BX JG O1_LOOP4 POP DX POP CX POP BX POP AXRETPUTDOT1 ENDP HANG1 PROC NEAR ;飞机飞行规划 PUSH CX PUSH DX PUSH BX PUSH AX CMP F_BOOR,0 ;飞机击中标志,0未击中; JNE HANG_1 CALL HANG JMP HANG_2HANG_1: ;击中 CMP F_BOOR,5 ;大烟雾5帧 JBE HANG_6 CALL PAOSHENG CALL BAOZHA2 DEC F_BOOR JMP HANG_5 HANG_6: CALL PAOSHENG CALL BAOZHA1 DEC F_BOOR JNZ HANG_5 MOV AX,0 MOV C_X0,AX MOV AX,5 MOV C_Y0,AX JMP HANG_5HANG_2: MOV CX,12 MOV BX,OFFSET PD1_X HANG_3: CMP BX+4,0 JZ HANG_4 MOV AX,BX+2 CMP AX,C_LY JG HANG_4 ADD AX,15 CMP AX,C_LY JB HANG_4 MOV AX,BX CMP AX,C_LX JB HANG_4 SUB AX,54 CMP AX,C_LX JG HANG_4 MOV F_NUM,0 MOV T_NUM,0 MOV AX,6 ;击中画面时长6帧

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论