为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

新汇编语言程序设计课程设计打字练习游戏源程序

2017-09-02 22页 doc 41KB 18阅读

用户头像

is_321575

暂无简介

举报
新汇编语言程序设计课程设计打字练习游戏源程序新汇编语言程序设计课程设计打字练习游戏源程序 ;=================打字游戏=============== ; 制作人:王涛 ; 制作日期:2011/06/24;======================================== ;宏名:INIT_GAME ;功能描述:初始化游戏 ;入口参数: ;OP1:戏戏戏戏置光行号 ;OP2:戏戏戏戏置光列号 ;OP3:在光示的字符戏戏戏戏戏戏戏 ;OP4:未知 ;OP5:未知 ;OP6:跳的号戏戏戏戏 INIT_GAME MACRO OP1,OP2,OP3...
新汇编语言程序设计课程设计打字练习游戏源程序
新汇编语言程序设计课程设计打字练习游戏源程序 ;=================打字游戏=============== ; 制作人:王涛 ; 制作日期:2011/06/24;======================================== ;宏名:INIT_GAME ;功能描述:初始化游戏 ;入口参数: ;OP1:戏戏戏戏置光行号 ;OP2:戏戏戏戏置光列号 ;OP3:在光示的字符戏戏戏戏戏戏戏 ;OP4:未知 ;OP5:未知 ;OP6:跳的号戏戏戏戏 INIT_GAME MACRO OP1,OP2,OP3,OP4,OP5,OP6 MOV CX,00H MOV DH,OP1 MOV DL,OP2 OP6: MOV AH,02H MOV BH,00H INT 10H PUSH CX MOV AH,0AH MOV AL,OP3 MOV BH,00H MOV CX,01H INT 10H POP CX INC CX INC OP4 CMP CX,OP5 JNE OP6 ENDM ;功能描述:初始化屏幕 ;参数:(OP1,OP2)戏戏左上角坐 ;(OP3,OP4)戏戏右下角坐 CLEAR_SCREEN MACRO OP1,OP2,OP3,OP4 MOV AH,06H MOV AL,00H MOV BH,07H MOV CH,OP1 MOV CL,OP2 MOV DH,OP3 MOV DL,OP4 INT 10H MOV AH,02H MOV BH,00H MOV DH,00H MOV DL,00H INT 10H ENDM MENU MACRO OP1,OP2,OP3 MOV AH,02H MOV BH,00H MOV DH,OP1 MOV DL,OP2 INT 10H MOV AH,09H LEA DX,OP3 INT 21H ENDM DATA SEGMENT LINJIANG DB "MADE BY wang tao$" NO DB "NO:2011/06/24$"MEG DB "Let's start!!! $"MEG1 DB "**SELECT MENU**$"MEG2 DB "PLEASE SELECT THE GAME SPEED,ESC TO QUIT.$" MEG3 DB "1.VERY SLOW $"MEG4 DB "2.SLOW $" MEG5 DB "3.NOMAL $" MEG6 DB "4.FAST $" MEG7 DB "5.VERY FAST $" MEG8 DB "6.FASTEST $" MEG9 DB "*SELECT THE NUMBER AND PRESS ENTER TO START!*$" MEG10 DB "GAME SPEED :$" HOTKEY DB "WHEN YOU ARE PLAYING GAMES:$" HOTKEY1 DB "ESC TO RETURN TO MENU$" HOTKEY2 DB "SPACE TO PAUSE THE GAME$"HOTKEY3 DB "PRESS ANY KEY TO PLAY GAMES......$"HOTKEY4 DB "ARE YOU READY??$" FAILMEG DB "THE LETTER IS ARRIVE THE BOTTOM, YOU LOSE ! *.* $" FAILMEG0 DB "PRESS ENTER TO GO ON......$"FAILMEG1 DB "GAME IS OVER!$" FAILMEG2 DB "PRESS ENTER TO RETURN MENU AND PRESS ESC TO EXIT!$" FAILMEG3 DB "BYE-BYE!THANK FOR YOUR PLAYING!!$"FAILMEG4 DB "PRESS ANY KEY TO QUIT......$"SPEED DW 00D,2400D,2000D,1600D,1200D,800D,600D LETTERS DB "JWMILZOEUCGPRAVSKNTXHDYQFB" DB "IYTPKWNXLSVXRMOFZHGAEBUDJQ" DB "NWIMZOEXRPHYSFQTVDCGLJUKDA" LETTERS_BAK DB "JWMILZOEUCGPRAVSKNTXHDYQFB" DB "IYTPKWNXLSVXRMOFZHGAEBUDJQ" DB "NWIMZOEXRPHYSFQTVDCGLJUKDA" LETTER_COUNTER DB 0 LIFE_FLAG DB 78 DUP(0) POSITION_FLAG DB 78 DUP(0) PRESENT_POSITION DB 1 DATA ENDS STACK SEGMENT PARA STACK 'STACK' DB 64 DUP(0) STACK ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV LETTER_COUNTER,00H MOV PRESENT_POSITION,1 LEA SI,POSITION_FLAG MOV AH,00H MOV CX,00H INIT_POSTION_FLAG: MOV [SI],AH INC SI INC CX CMP CX,78D JNE INIT_POSTION_FLAG LEA DI,LETTERS LEA SI,LETTERS_BAKMOV CX,00H INIT_LETTERS: MOV AH,[SI] MOV [DI],AH INC SI INC DI INC CX CMP CX,78D JNE INIT_LETTERS MOV AH,00H LEA SI,LIFE_FLAG MOV CX,00H INIT_LIFE_FLAG: MOV [SI],AH INC SI INC CX CMP CX,78D JNE INIT_LIFE_FLAG MOV CX,00H MOV AH,01H OR CH,00010000B INT 10H CLEAR_SCREEN 00D,00D,24D,79D INIT_GAME 00D,00D,0AH,DL,80D,NEXTSIGN1 INIT_GAME 24D,00D,0AH,DL,80D,NEXTSIGN2INIT_GAME 00D,00D,0AH,DH,25D,NEXTSIGN3INIT_GAME 00D,79D,0AH,DH,25D,NEXTSIGN4 MENU 01D,15D,MEG ;菜信息的宏展戏戏戏戏戏戏戏 MENU 01H,61D,LINJIANG MENU 03D,20D,MEG1 MENU 03D,68D,NO MENU 05D,15D,MEG2 MENU 07D,15D,MEG3 MENU 09D,15D,MEG4 MENU 11D,15D,MEG5 MENU 13D,15D,MEG6MENU 15D,15D,MEG7MENU 17D,15D,MEG8MENU 19D,15D,MEG9MENU 22D,15D,MEG10 INPUT: MOV AH,02H MOV BH,00H MOV DH,22D MOV DL,33D INT 10H MOV AH,0AH MOV AL," " MOV BH,00H MOV CX,01H INT 10H MOV AH,01H INT 21H RETRY: CMP AL,"1" JE SPEED1 CMP AL,"2" JE SPEED2 CMP AL,"3" JE SPEED3 CMP AL,"4" JE SPEED4 CMP AL,"5" JE SPEED5 CMP AL,"6" JE SPEED6 CMP AL,1BH JE TO_OVER0 JMP INPUT TO_OVER0:JMP OVER SPEED1: MOV AH,01H INT 21H CMP AL,0DH JNE OTHERKEY MOV AX,SPEED+2 MOV SPEED,AX JMP BEGIN SPEED2: MOV AH,01H INT 21H CMP AL,0DH JNE OTHERKEY MOV AX,SPEED+4 MOV SPEED,AX JMP BEGIN SPEED3: MOV AH,01H INT 21H CMP AL,0DH JNE OTHERKEY MOV AX,SPEED+6 MOV SPEED,AX JMP BEGIN SPEED4: MOV AH,01H INT 21H CMP AL,0DH JNE OTHERKEY MOV AX,SPEED+8 MOV SPEED,AX JMP BEGIN SPEED5: MOV AH,01H INT 21H CMP AL,0DH JNE OTHERKEY MOV AX,SPEED+10 MOV SPEED,AX JMP BEGIN SPEED6: MOV AH,01H INT 21H CMP AL,0DH JNE OTHERKEY MOV AX,SPEED+12 MOV SPEED,AX JMP BEGIN OTHERKEY: ; 戏戏戏戏戏戏戏戏理重入的代段 PUSH AX MOV AH,02H MOV BH,00H MOV DH,22D MOV DL,34D INT 10H MOV AH,0AH MOV AL," " MOV BH,00H MOV CX,01H INT 10H MOV AH,02H MOV BH,00H MOV DH,22D MOV DL,33D INT 10H POP AX MOV DX,AX MOV AH,02H INT 21H JMP RETRY BEGIN: CLEAR_SCREEN 01D,01D,23D,78D MENU 08D,20D,HOTKEY MENU 10D,20D,HOTKEY1 MENU 12D,20D,HOTKEY2 MENU 14D,20D,HOTKEY4 MENU 16D,20D,HOTKEY3 MOV AH,07H INT 21H CLEAR_SCREEN 01D,01D,23D,78D INIT_GAME 23D,01D,01H,DL,78D,NEXTSIGN5 MOV AH,02H ;光初始化戏戏戏戏 MOV BH,00H MOV DH,01H MOV DL,01H INT 10H MOV CX,00H LEA SI,LETTERS NEXTLETTER: ; 初始化屏幕上方的字母 MOV AH,02H MOV DL,[SI] INT 21H INC SI INC CX CMP CX,78D JE NEXTCYCLE JMP NEXTLETTER FROM_FRONT: ; 相循的算法戏戏戏戏戏戏 SUB PRESENT_POSITION,78D JMP GOBACKTO_SI FIND_ZERO:CMP LETTER_COUNTER,78D JE RECYCLE CMP PRESENT_POSITION,78D JE FROM_ONE MOV AH,00H NEXTSI: ADD PRESENT_POSITION,01H INC SI CMP [SI],AH JE GOBACKTO_DI CMP PRESENT_POSITION,78D JE FROM_ONE JMP NEXTSI FROM_ONE:MOV PRESENT_POSITION,01H JMP GOBACKTO_SI RECYCLE:MOV LETTER_COUNTER,00H MOV PRESENT_POSITION,01D LEA SI,POSITION_FLAG MOV CX,00H MOV AH,00H CLEARSI: MOV [SI],AH INC CX CMP CX,78D JE NEXTCYCLE INC SI JMP CLEARSI NEXTCYCLE: LEA DI,LETTERS LEA SI,POSITION_FLAG ADD PRESENT_POSITION,31D CMP PRESENT_POSITION,78 JA FROM_FRONT GOBACKTO_SI: ADD SI,WORD PTR PRESENT_POSITION DEC SI MOV AH,[SI] CMP AH,01H JE FIND_ZERO GOBACKTO_DI: MOV AH,01H MOV [SI],AH ADD DI,WORD PTR PRESENT_POSITION DEC DI MOV DL,PRESENT_POSITION MOV AH,02H ; 字母下落的代段部分戏戏戏戏 MOV BH,00H MOV DH,01H INT 10H MOV CX,00H NEXTROW:PUSH CX ; 新的一行 MOV CX,00H OUT_CYCLE: ; 延戏 PUSH CX MOV CX,00H IN_CYCLE: ADD CX,01H CMP CX,50000D JNE IN_CYCLE PUSH DX MOV AH,06H MOV DL,0FFH INT 21H POP DX JZ PASS ; 如果冲区部分空戏戏戏戏戏戏戏戏戏,戏戏跳 CMP AL,1BH ; 如果入戏戏ESC,返回主菜戏戏戏戏戏戏 JE TO_START1 CMP AL," " ;如果入戏戏SPACE,游停戏戏戏戏戏 JE PAUSE CMP AL,[DI] ;戏戏入字母正确:跳! JE DISAPPEAR PASS: POP CX INC CX CMP CX,SPEED JE PRINT JMP OUT_CYCLEPAUSE: PUSH DX ;戏戏戏停理 MOV AH,06H MOV DL,0FFH INT 21H POP DX CMP AL," " JNE PAUSE JMP PASS TO_START1: ;返回主菜戏 JMP START PRINT: MOV AH,0AH MOV AL," " MOV BH,00H MOV CX,01H INT 10H INC DH MOV AH,02H MOV BH,00H INT 10H MOV AH,0AH MOV AL,[DI] MOV BH,00H MOV CX,01H INT 10H POP CX INC CX CMP CX,21D JE PRINT_NEXT_LETTER JMP NEXTROW ; 下一行DISAPPEAR: ; 戏戏戏戏中字母后的相理 POP CX POP CX MOV AH,0AH MOV AL," " MOV BH,00H MOV CX,01H INT 10H JMP HIT PRINT_NEXT_LETTER: ; 戏理原位置的空缺 LEA SI,LIFE_FLAG ADD SI,WORD PTR PRESENT_POSITION DEC SI MOV AH,[SI] CMP AH,1 JE FAIL MOV AH,0AH MOV AL," " MOV BH,00H MOV CX,01H INT 10H INC DH MOV AH,02H MOV BH,00H INT 10H MOV AH,0AH MOV AL," " MOV BH,00H MOV CX,01H INT 10H MOV AH,1 MOV [SI],AH HIT: MOV AH,02H MOV BH,00H MOV DH,01H MOV DL,PRESENT_POSITION INT 10H MOV AL,[DI] ; 出下一个新字母的数法戏戏戏戏戏戏戏戏戏戏 ADD AL,7 CMP AL,7AH JA CONVEY_LETTER MOV AH,0AH MOV BH,00H MOV CX,01H INT 10H MOV [DI],AL ADD LETTER_COUNTER,01H JMP NEXTCYCLE CONVEY_LETTER: SUB AL,7AH ADD AL,61H MOV AH,0AH MOV BH,00H MOV CX,01H INT 10H MOV [DI],AL ADD LETTER_COUNTER,01H JMP NEXTCYCLE FAIL: MOV AH,0AH ;游失后的相理戏戏戏戏戏戏戏戏戏 MOV AL," " MOV CX,01H INT 10H INC DH MOV AH,02H MOV BH,00H INT 10H MOV AH,0AH MOV AL,[DI] MOV BH,00H MOV CX,01H INT 10H MOV AH,02H MOV BH,00H MOV DH,12D MOV DL,17D INT 10H PUSH DX MOV AH,09H LEA DX,FAILMEG INT 21H POP DX ADD DH,2 MOV AH,02H MOV BH,00H INT 10H MOV AH,09H LEA DX,FAILMEG0 INT 21H RE: MOV AH,07H INT 21H CMP AL,0DH JNE RE CLEAR_SCREEN 01,01,23,78 MOV AH,02H MOV BH,00H MOV DH,11D MOV DL,20D INT 10H PUSH DX MOV AH,09H LEA DX,FAILMEG1 INT 21H POP DX INC DH INC DH MOV AH,02H MOV BH,00H INT 10H MOV AH,09H LEA DX,FAILMEG2 INT 21H NOTKEY: MOV AH,07H INT 21H CMP AL,0DH JE TO_START CMP AL,1BH JE OVER JMP NOTKEYTO_START: CLEAR_SCREEN 00,00,24,79 JMP STARTOVER: CLEAR_SCREEN 01,01,23,78 MOV AH,02H MOV BH,00H MOV DH,11D MOV DL,15H INT 10H MOV AH,09H LEA DX,FAILMEG3 INT 21H MOV AH,02H MOV BH,00H MOV DH,13D MOV DL,15H INT 10H MOV AH,09H LEA DX,FAILMEG4 INT 21H MOV AH,07H INT 21H MOV AH,07H INT 21H CLEAR_SCREEN 00,00,24,79 MOV AX,4C00HINT 21H MAIN ENDP CODE ENDS END START
/
本文档为【新汇编语言程序设计课程设计打字练习游戏源程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索