当前位置:文档之家› 汇编语言课程设计报告

汇编语言课程设计报告

农林大学金山学院课程设计报告课程名称:汇编语言课程设计课程设计题目:动画设计“我爱大自然”姓名:系:信息与机电工程系专业:电子信息工程年级:2008级学号:*********指导教师:\职称:助教2009~2010学年第二学期目录1 课程设计的目的 (2)2 课程设计的要求 (2)3课程设计报告容 (2)3.1设计思路 (2)3.2程序流程图 (2)3.3设计源程序 (5)3.4动画示意图 (19)4 总结 (20)5参考文献 (20)6评分标准 (21)动画设计“我爱大自然”一、课程设计的目的《汇编语言课程设计》是电子信息工程专业集中实践性环节之一,是学习完《汇编语言》课程后进行的一次全面的综合练习。

其目的是:培养学生熟练掌握汇编语言指令系统,深化和巩固指令系统和编程方法,提高学生的编程应用能力。

为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。

二、课程设计的要求1)具备初步的独立分析和解决问题的能力;2)初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能;3)提高综合运用所学的理论知识和方法的能力;4)训练用系统的观点和软件开发一般规进行软件开发,培养科学的工作方法和作风;5)设计的题目要求达到一定工作量,并具有一定的深度和难度;6)编写出课程设计说明书。

三、课程设计报告容(一)设计思路“我爱大自然”这个程序中包含了比较多的景物,既有静态的也有动态的,其中还有一段音乐。

为了节省存储空间,提高程序设计的效率和质量,使程序简洁、清晰,便于阅读,同时也为了便于修改和扩充,采用子程序设计技术和宏定义,根据程序要实现的若干主要功能及个功能块要调用的公共部分,将程序划分为若干个相对独立的模块,为每个模块编制独立的程序段,最后将这些子程序根据调用关系连成一个整体。

这样,整个程序就被分为几个子程序的有机统一。

根据BIOS中断调用原理,设置80×25彩色文本显示方式,分别编写一个子程序显示“I LOVE NATURE,LET US GO AIRING”和一个子程序在屏幕上“画”树。

这两个子程序所体现出来的事物都是的。

为了实现小鸟能在空中翩翩飞舞和小汽车在林荫路上行驶,还要调用擦除子程序和延时子程序。

擦除子程序的原理是根据相对位移设置光标位置,讲原来字符属性设置为黑底黑字,以达到擦除效果。

延时子程序的原理也很简单,即设置循环次数,让CPU做一些“无用功”,这样读者就能看到小鸟“飞起来”和小汽车“跑起来”。

可以改变循环次数来控制延时,达到想要的效果。

动态的事物就这样产生了。

(二)程序流程图图(1)程序总流程图图(2)画花子程序流程图图(3)道路两旁画小树(小草)子程序流程图(4)小鸟飞翔子程序流程图(三)、设计源程序SETIOM MACRO X,Y,Z,L,M,NMOV X,YZ L,MINT NENDMPUSHR MACRO X,Y,Z,WPUSH XPUSH YPUSH ZPUSH WENDMPOPR MACRO X,Y,Z,WPOP WPOP ZPOP YPOP XENDMSTACKS SEGMENTDW 256 DUP(?)STACKS ENDSDATA SEGMENTSTRING1 DB 'I LOVE NATURE,LET US GO AIRING' STRLEN1 EQU $-STRING1FLOWER DB 23DB 'W',0CH,0,0DB 'W',0CH,0,1DB 'W',0CH,0,1DB 'W',0CH,0,1DB 'W',0CH,0,1DB ')',09H,1,0DB '-',09H,0,-1DB '-',09H,0,-1 DB '-',09H,0,-1 DB '(',09H,0,-1 DB 'Y',09H,1,2 DB '|',06H,1,0 DB '/',0AH,0,1 DB '\',0AH,0,-2 DB '|',06H,1,1 DB '/',0AH,0,1 DB '|',06H,1,-1 DB '\',0AH,0,-1 DB '|',06H,1,1 DB '/',06H,0,1 DB '/',06H,0,1 DB '\',06H,0,-3 DB '\',06H,0,-1 BIRD DB 5DB 1AH,06H,0,0 DB 1AH,06H,0,1 DB 1AH,06H,1,0 DB 1AH,06H,0,1 DB 20H,00H,0,1 CAR DB 8DB 23H,7,0,0DB 0B1H,7,0,1DB 0DBH,7,0,1DB 0DBH,7,0,1DB 4FH,7,1,0DB 4FH,7,0,-3DB 1,7,-2,1DB 20H,0,0,1COUNT DW 0POINTER DW 0LINE DB 0COLUMN DB 0TREE DB 5,0AHFREQ DW 196,220DW 262,262,262,262,262,220,196DW 262,262,262,262,294,262,220,262 DW 294,294,294,294,294,262,220DW 294,294,294,294,330,294,330,392 DW 440,440,392,440,392,330DW 294,294,330,294,262,220,196,220 DW 262,262,262,262,262,220DW 262,196,220DW 440,440,392,440,524,440DW 392,330,294,262,220,196,220DW 262,262,262,262,294,262DW 262,330,392DW 440,440,440,440,524,440DW 392,392,392,440,392,330,294DW 262,262,262,262,294DW 330,330,294DW 262,262,262,262,524,440DW 392,392,392,440,392,330,392DW 440,524,524,440,392DW 392,330,392DW 440,440,440,440,524,440DW 392,392,392,440,392,330,294DW 262,262,262,262,392DW 330,330,294DW 262,262,262,262,294,330DW 392,392,330,392,330,392DW 440DW 9,9,196,660,294,294,262DW 262,1TIME DW 400,400DW 400,200,400,400,800,400,400DW 400,200,400,200,200,800,400,400DW 400,200,400,400,800,400,400DW 400,200,400,200,200,800,400,400 DW 400,800,400,800,400,400DW 400,200,200,400,400,800,400,400 DW 400,200,400,400,800,800DW 1600,800,800DW 400,800,400,800,400,400DW 400,400,400,400,800,400,400DW 400,800,400,800,400,200DW 2400,400,400DW 400,800,400,800,400,400DW 400,800,200,200,800,400,400DW 400,800,400,800,800DW 2400,400,400DW 400,800,400,800,400,400DW 400,800,200,200,800,400,400DW 800,400,800,400,200DW 2400,400,400DW 400,800,400,800,400,400DW 400,800,200,200,800,400,400DW 400,800,400,800,800DW 2400,400,400DW 400,800,400,800,400,400DW 400,800,400,800,400,400DW 3200DW 800,400,400,400,400,400,400DW 4000DATA ENDSCODES SEGMENTASSUME CS:CODES,DS:DATA,ES:DATA,SS:STACKS START: MOV AX,DATAMOV DS,AXMOV ES,AXSETIOM AH,0,MOV,AL,3,10HCALL CLEARCALL WRITE1CALL DELAY2CALL CLEARMOV DX,0901HCALL HUAMOV DX,090AHCALL HUAMOV DX,0912HCALL HUAMOV DX,091BHCALL HUAMOV DX,0925HCALL HUAMOV DX,092EHCALL HUAMOV DX,0941HCALL HUAMOV DX,094AHCALL HUACALL MOVEBIRDCALL MOVECARCALL MOVEBIRDCALL MUSICCALL CLEARMOV AX,4C00HINT 21HWRITE1 PROCMOV DX,0512HCALL HUAMOV DX,051BHCALL HUA MOV DX,0525HCALL HUAMOV DX,052EHCALL HUAPUSHR AX,BX,CX,DXLEA BP,STRING1MOV CX,STRLEN1MOV DX,021aHMOV BH,0MOV BL,84HSETIOM AL,0,MOV,AH,13H,10H POPR AX,BX,CX,DXRETWRITE1 ENDPMOVEBIRD PROCCALL DRAWTREECALL DRAWTRE1MOV DX,0939HCALL HUALEA SI,BIRDMOV DX,0602HPUSHR AX,BX,CX,DXPUSH SIXOR CH,CHMOV CL,[SI]INC SIMOV COUNT,CXMOV POINTER,SI MOV LINE,DHMOV COLUMN,DL NEXTB: ADD DH,[SI+2] ADD DL,[SI+3] CMP DL,60JB WRITEBPOP SIPOPR AX,BX,CX,DX RETWRITEB: MOV AH,2INT 10HMOV AL,[SI]MOV BL,[SI+1] PUSH CXMOV AH,9MOV CX,1INT 10HPOP CXADD SI,4LOOP NEXTBCALL DELAYCALL ERASEBIRDJMP SHORT NEXTB MOVEBIRD ENDPERASEBIRD PROCMOV CX,COUNTMOV SI,POINTERMOV DH,LINEMOV DL,COLUMNLB: ADD DH,[SI+2]MOV AH,2ADD DL,[SI+3]INT 10HMOV AL,[SI]MOV BL,0PUSH CXSETIOM AH,9,MOV,CX,1,10H POP CXADD SI,4LOOP LBMOV CX,COUNTMOV SI,POINTERCMP LINE,5HJA SUBTJMP ADAD: INC LINEJMP MOVESUBT: SUB LINE,2MOVE: MOV DH,LINEINC COLUMNMOV DL,COLUMN RETERASEBIRD ENDPMOVECAR PROCLEA DI,CARMOV DX,1300HPUSHR AX,BX,CX,DX PUSH DIXOR CH,CHMOV CL,[DI]INC DIMOV COUNT,CXMOV POINTER,DI MOV LINE,DHMOV COLUMN,DL NEXTC: ADD DH,[DI+2] ADD DL,[DI+3]CMP DL,80JB WRITECPOP DIPOPR AX,BX,CX,DX RETWRITEC: MOV AH,2INT 10HMOV AL,[DI]MOV BL,[DI+1] PUSH CXMOV AH,9MOV CX,1INT 10HPOP CXADD DI,4LOOP NEXTCCALL DELAYCALL ERASECARJMP SHORT NEXTC MOVECAR ENDPERASECAR PROCMOV CX,COUNTMOV DI,POINTER MOV DH,LINEMOV DL,COLUMN LL: ADD DH,[DI+2] MOV AH,2ADD DL,[DI+3] INT 10HMOV AL,[DI]MOV BL,0PUSH CXMOV AH,9MOV CX,1INT 10HPOP CXADD DI,4LOOP LLMOV CX,COUNT MOV DI,POINTER MOV DH,LINECMP DL,80JAE ENDLINC COLUMNMOV DL,COLUMNENDL: RETERASECAR ENDPDRAWTREE PROCPUSHR AX,BX,CX,DXMOV DX,1600HMOV CX,40MOV AL,TREEMOV BL,TREE+1TRE: MOV AH,2INT 10HPUSH CXSETIOM AH,9,MOV,CX,1,10H ADD DL,2POP CXLOOP TREPOPR AX,BX,CX,DXRETDRAWTREE ENDPDRAWTRE1 PROCPUSHR AX,BX,CX,DXMOV DX,1000HMOV CX,40MOV AL,TREETRE1: MOV AH,2INT 10HPUSH CXSETIOM AH,9,MOV,CX,1,10H ADD DL,2POP CXLOOP TRE1POPR AX,BX,CX,DXRETDRAWTRE1 ENDPHUA PROCLEA DI,FLOWERPUSHR AX,BX,CX,DXXOR CH,CHMOV CL,[DI]INC DINEXTH: ADD DH,[DI+2]ADD DL,[DI+3]MOV AH,2INT 10HMOV AL,[DI]PUSH CXMOV AH,9MOV CX,1INT 10HPOP CXADD DI,4LOOP NEXTHPOPR AX,BX,CX,DXRETHUA ENDPMUSIC PROCPUSHR AX,BX,CX,DXMOV SI,OFFSET FREQ MOV DI,OFFSET TIME L1: MOV CX,[SI]CMP CX,1JE EXITMOV BX,[DI]PUSH DXMOV AL,0B6HOUT 43H,ALMOV DX,08HDIV CXOUT 42H,AL MOV AL,AHOUT 42H,AL IN AL,61H MOV AH,ALOR AL,3OUT 61H,AL L2: PUSH DXPUSH AXMOV DX,08H MOV AX,0F05H S1: SUB AX,1SBB DX,0JNZ S1POP AXPOP DXDEC BXJNZ L2MOV AL,AHOUT 61H,AL POP DXADD SI,2ADD DI,2JMP L1EXIT: POPR AX,BX,CX,DX RETMUSIC ENDPDELAY PROCPUSHR AX,BX,CX,DX MOV DX,7000GO: MOV CX,20000REPEAT: LOOP REPEATDEC DXJNE GOPOPR AX,BX,CX,DX RETDELAY ENDPDELAY2 PROCPUSHR AX,BX,CX,DX MOV DX,50000GO2: MOV CX,50000REPEAT2: LOOP REPEAT2DEC DXJNE GO2POPR AX,BX,CX,DX RETDELAY2 ENDPCLEAR PROCPUSHR AX,BX,CX,DX MOV BH,7MOV DX,184FHMOV AX,0600HMOV CX,0INT 10HPOPR AX,BX,CX,DX RETCLEAR ENDPCODES ENDSEND START (四)动画示意图四.总结《汇编语言课程设计》是电子信息工程专业集中实践性环节之一,是学习完《汇编语言》课程后进行的一次全面的综合练习。

相关主题