俄罗斯方块代码.doc_第1页
俄罗斯方块代码.doc_第2页
俄罗斯方块代码.doc_第3页
俄罗斯方块代码.doc_第4页
俄罗斯方块代码.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

DATA SEGMENTSEGMENT1CDW0OFF1CDW0BOARDDW24DUP(?),0FFFFHYDB?TYDB?XRDB?XLDB?NOWDB?DIREDB?NXTDB?TIMDB0SPEEDDB0CONDB0DVDB 0FLGDB 0PADDW0H,3C0H,0H,0H;0DW100H,100H,100H,100HDW0H,3C0H,0H,0HDW100H,100H,100H,100HDW0H,180H,180H,0H;1DW0H,180H,180H,0HDW0H,180H,180H,0HDW0H,180H,180H,0HDW0H,380H,200H,0H;2DW200H,200H,300H,0HDW0H,80H,380H,0HDW0H,300H,100H,100HDW0H,380H,80H,0H;3DW300H,200H,200H,0HDW0H,200H,380H,0HDW100H,100H,300H,0HDW0H,180H,300H,0H;4DW100H,180H,80H,0HDW0H,180H,300H,0HDW100H,180H,80H,0HDW0H,300H,180H,0H;5DW80H,180H,100H,0HDW0H,300H,180H,0HDW80H,180H,100H,0HDW0H,380H,100H,0H ;6DW100H,180H,100H,0HDW100H,380H,0H,0HDW100H,300H,100H,0HP1DW4DUP(?)P2DW4DUP(?) COLOR DB 00001001b,00001010b,00001011b,00001100b,00001101b,00001110b,00000001b NCOLORDB?SCOREDB5DUP(0),$PADMSGDB25DUP(219)TMPMSGDB25DUP(?)STARTMSG1DB0DH,0AH,Select speed.,0DH,0AH,$ STARTMSG2 DB 20H,20H,1. Fast,0DH,0AH,$STARTMSG3DB20H,20H,2. Middle,0DH,0AH,$ STARTMSG4 DB 20H,20H,3. Slow,0DH,0AH,$STARTMSG5DB20H,20H,0. Exit,0DH,0AH,$ENDMSGDB0DH,0AH,Good Bye!,0DH,0AH,$ SCOREMSG1 DB 201,19 dup(205),187 SCOREMSG2 DB 186, Score: ,186 SCOREMSG3 DB 204,19 dup(205),185 SCOREMSG4 DB 186,19 dup(32),186 SCOREMSG5 DB 186,19 dup(32),186 SCOREMSG6 DB 186,19 dup(32),186 SCOREMSG7 DB 186,19 dup(32),186 SCOREMSG8 DB 204,19 dup(205),185 SCOREMSG9 DB 186, Left : A ,186 SCOREMSG10 DB 186, Right : D ,186 SCOREMSG11 DB 186, Rotate: S ,186 SCOREMSG12 DB 186, Down : Tab ,186 SCOREMSG13 DB 186,-,186 SCOREMSG14 DB 186, Exit : Esc ,186 SCOREMSG15 DB 200,19 dup(205),188DATAENDSSTACKSEGMENTSTACKDB200DUP(?)STACKENDSCODESEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOVAX,DATAMOVDS,AXPUSHDS;GETINT1CADRESSMOVAL,1CHMOVAH,35HINT21HMOVSEGMENT1C,ESMOVOFF1C,BX;SETINT1CADRESSMOVDX,OFFSETINT1CMOVAX,SEGINT1CMOVDS,AXMOVAL,1CHMOVAH,25HINT21HPOPDSGAMEOVER:;设置显示方式 :80*25 16色文本MOVAH,00HMOVAL,03HINT 10HSELECTSPEED:;显示提示信息MOVAH,09HMOVDX,OFFSET STARTMSG1INT21HMOVDX,OFFSET STARTMSG2INT21HMOVDX,OFFSET STARTMSG3INT21HMOVDX,OFFSET STARTMSG4INT21HMOVDX,OFFSET STARTMSG5INT21H;检测CTRL+BREAK 或MOVAH,08HINT 21HSUBAL,0MOVCL,ALANDAL,3CMPAL,CL JNE SELECTSPEED INCALINCCLMULCLCMPAL,1HJEEXITMOVSPEED, AL;SETGRAPHICS:640*480*16色MOVAH,00HMOVAL,12HINT10H;设置调色板: BH 调色板ID, BL 和ID使用的颜色MOVAH,0BHMOVBH,01MOVBL,00HINT10H;START GAMECALLINITGAMECALLBEGINCALL DELAYMOVTIM,0HLOOP1:STIMOVAL,TIMCMPAL,SPEEDJGTIME MOV AH,1 INT 16H JZ LOOP1 MOV AH,0 INT 16H CMP AL,1BH JZ EXIT CMPAL,a JZKA CMPAL,s JZKS CMPAL,d JZKD CMP AL,09H JNZ TIMEKTAB: CALLDELAYCALL DOWN CMP CON,1 JNEKTAB CALL BEGIN JMP LOOP1KA:CALLLEFTJMP LOOP1KS:CALL ROTATEJMPLOOP1KD:CALL RIGHTJMPLOOP1TIME:MOVTIM,0HCALLDOWNCMPCON,0JELOOP1CALLBEGINJMPLOOP1EXIT:;SETGRAPHICSMOVAX,0003HINT 10HMOVAX,DATAMOVDS,AXMOVDX,OFFSET ENDMSGMOVAH,09HINT 21H;SETINT1C ADRESSMOVDX,OFF1CMOVAX,SEGMENT1CMOVDS,AXMOVAL,1CHMOVAH,25HINT21HMOVAX,4C00HINT21HINT1CPROCSTIPUSHAXPUSHDXMOVAX,DATAMOVDS,AXINCTIMPOP DXPOPAXIRETINT1CENDPDELAYPROCNEARPUSHCX MOV CX,00FFHLOOP20: LOOP LOOP20 POPCXRETDELAYENDPROTATEPROCNEARMOVSI,OFFSET PADMOVAL,NOWMOVAH,0HMOVCL,32MULCLADDSI,AXMOVAL,DIRE INC ALANDAL,03HMOVAH,0HMOVCL,8MULCLADDSI,AXMOVDI,OFFSET P2MOVCX,04HCLDLOOP12: PUSH CX LODSW MOV CL,XR SHR AX,CL MOV CL,XL SHL AX,CLSTOSW POP CX LOOP LOOP12CALL CHECKCMP AL, 0HJNE SKIP10MOV BX, 0000HCALLDISPPADCALL COPY21INCDIREANDDIRE, 3HMOVBH, 00HMOVBL, NCOLORCALL DISPPADSKIP10:RETROTATEENDPRIGHTPROCNEARCALL COPY12MOVSI,OFFSET P2MOVCX,04HLOOP7:MOVAX,SISHRAX,1MOVSI,AXINCSIINCSILOOP LOOP7CALL CHECKCMPAL,0HJNESKIP6MOVBX,0000HCALLDISPPADCALL COPY21CMPXL,0JESKIP7DECXLDECXRSKIP7: INCXRMOVBH,00HMOVBL,NCOLORCALL DISPPADSKIP6:RETRIGHTENDPLEFTPROCNEARCALL COPY12MOVSI,OFFSET P2MOVCX,04HLOOP10:MOVAX,SISHLAX,1MOVSI,AXINCSIINCSILOOP LOOP10CALL CHECKCMPAL,0HJNESKIP8MOVBX,0000HCALLDISPPADCALL COPY21CMPXR,0JESKIP9DECXRDECXLSKIP9: INCXLMOVBH,00HMOVBL,NCOLORCALL DISPPADSKIP8:RETLEFTENDPDOWNPROCNEARCALL COPY12INCTYCALL CHECKCMPAL,0HJNESKIP5MOVBX,0000HCALLDISPPADCALL COPY21MOVBH,00HMOVBL,NCOLORCALL DISPPADMOVCON,00HRETSKIP5: CALL PUTMOVCON,01HRETDOWN ENDPPUT PROC NEARMOVBH,0H MOV BL,0hCALLDISPPADMOVBH,0H MOV BL,01011001bCALLDISPPADINCSCORE4MOVDV,01HMOVAH,0HMOVAL,YADDAL,YMOVSI,OFFSET BOARDADDSI,AXMOVDI,00HMOVCX,04HCLDLOOP15: LODSW OR AX,P1DI MOV SI-2,AXINCDIINCDI LOOP LOOP15 MOV SI,OFFSET BOARD ADD SI,23*2 MOV DI,SI MOV CX,20 MOV BH,00H MOVFLG,00H STDLOOP13: LODSW CMP AX,0FFFFH JNE SKIP12 MOVFLG,0FFH MOVAL,DV SALAL,1 MOVDV,AL JMP LOOP13SKIP12: STOSW;PUSHAXCMPFLG,0HJE SKIP70PUSH CX MOV DH,CL ADD DH,03H MOV DL,0AH MOV BX,0000H MOV BP,OFFSET PADMSG MOV CX,20 PUSH AX MOV AX,1300H INT 10H POP AXMOV CL,03HSHLAX,CLMOVCX,0AHMOVDL,08HLOOP14: INC DL INCDL MOV BL,0HSHLAX,1 JNC SKIP11 MOV BL,01011001bSKIP11: CALL DISPCELL LOOP LOOP14POPCXSKIP70: LOOP LOOP13 MOVAL,DV SARAL,1 ADDSCORE3,AL MOVCX,05H MOVSI,04HLOOP16:CMPSCORESI,9JNGSKIP13INCSCORESI-1SUBSCORESI,0AHSKIP13:DECSILOOPLOOP16 RETPUT ENDPDISPSCOREPROCNEARMOVAX,DATAMOVES,AXMOVBP,OFFSETSCOREMOVCX,05H MOV DX,0635HMOVBH,0HMOVAL,0HMOVBL,00110100BMOVAH,13HINT10HRETDISPSCOREENDPDISPNEXTPROCNEARMOVAX,DATAMOVES,AXMOVBP,OFFSETTMPMSGMOVDI,BPMOVSI,OFFSETPADMOVAL,NXTMOVAH,0MOVBL,32MULBLADDSI,AXCLDMOVCX,04HLOOP8:PUSHCXLODSW MOVCL,06HSHLAX,CLMOVCX,04HLOOP9: MOV BL,20HSHLAX,1JNCSKIP2MOVBL,219SKIP2:MOVDI,BLINCDIMOVDI,BLINCDILOOPLOOP9 MOV DX,0c30HPOP CXSUB DH,CLPUSH CXMOVCX,08HMOVBH,0HPUSHSIMOV AH,0HMOV AL,NXTMOV SI,AXMOV BL,COLORSIPOP SI MOV AX,1300HINT10HPOPCXMOVDI,BPLOOPLOOP8RETDISPNEXTENDPCOPY21PROCNEARCLDMOVSI,OFFSETP2MOVDI,OFFSETP1MOVCX,08REPMOVSBMOV CL,TYMOVY,CLRETCOPY21ENDPCOPY12PROCNEARCLDMOVSI,OFFSETP1MOVDI,OFFSETP2MOVCX,08REPMOVSBMOV CL,YMOVTY,CLRETCOPY12ENDPBEGINPROCNEARMOVAL,NXTMOVNOW,ALCALLRANDOMCALLDISPSCORECALLDISPNEXT;FORMATVALUEMOVDIRE,0MOVY,4MOVTY,4MOVXR,0MOVXL,0MOVAH,0MOVAL,NOWMOVSI,AXMOVCL,COLORSIMOVNCOLOR,CLMOVDI,OFFSETP2MOVSI,OFFSETPADMOVBL,32MULBLADDSI,AXMOVCX,08CLDREP MOVSBCALLCOPY21MOVBH,0HMOVBL,NCOLORCALLDISPPADCALLCHECKCMPAL,0JESKIP1MOVDL,07HMOVAH,02HINT 21HMOVAH,08HINT 21HJMPGAMEOVERSKIP1:CALLDELAYMOVTIM,0HRETBEGINENDPCHECKPROCNEAR;RETURN AL=0/F 0:OK F:NOMOVAH,0HMOVAL,TYADDAL,TYMOVSI,OFFSET BOARDADDSI,AXMOVDI,00HMOVCX,04HCLDLOOP6:LODSWAND AX,P2DIJNZSKIP4INCDIINCDILOOP LOOP6MOVAL,00HRETSKIP4: MOVAL,0FHRETCHECKENDPDISPPADPROCNEAR ;BX BH=PAGE BL=COLORMOV SI,OFFSET P1MOV CX,04HMOVDL,08HMOV DH,YADDDH,04HPUSHDXCLDLOOP2:LODSWPOPDXPUSHDXSUBDH,CLPUSH CXMOV CL,03HSHLAX,CLMOVCX,0AHLOOP3:INCDLINCDLSHLAX,1JNCSKIP3CALL DISPCELLSKIP3:LOOPLOOP3POPCXLOOP LOOP2POPDXRETDISPPADENDP;DH=ROW DL=COL BH=PAGE BL=COLORDISPCELLPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHDIPUSHSIMOVBP,OFFSET PADMSGMOVCX,02HMOVAX,1300HINT 10HCMPBL,0HJESKIP20;CALCROWMOVAH,0HMOVAL,DH MOV CL,16MULCLMOVSI,AX;CALCCOLMOVAH,0HMOVAL,DLMOVCL,8MULCLMOVDI,AX;DRAWMOVAX,0C00HMOVDX,SI ADD DX,15MOVCX,16LOOP21:ADDCX,DIDECCXINT10HINCCXSUBCX,DILOOPLOOP21 MOV DX,SI MOV CX,15 ADD DI,15LOOP22: PUSH CX MOV CX,DI INT 10H INC DX POP CX LOOP LOOP22 SUB DI,2 DEC DX MOV CX,13LOOP23: PUSH CX DEC DX MOV CX,DI INT 10H SUB CX,12 MOV AL,07H INT 10H MOV AL,00H POP CX LOOP LOOP23 MOV AX,0C07HMOVDX,SI ADD DX,1 MOV CX,12 SUB DI,12LOOP24: ADD CX,DIINT10HSUBCX,DI LOOP LOOP24SKIP20:POPSIPOPDIPOPDXPOPCXPOPBXPOPAXRETDISPCELLENDP;初始化屏幕 :25*80CLSPROCNEARMOVCX,0MOVDH,24MOVDL,79MOVBH,0MOVAX,600HINT10HRETCLSENDPRANDOMPROCNEARLOOP5: IN AX,40H INC ALANDAL,07HCMPAL,07HJELOOP5M

温馨提示

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

评论

0/150

提交评论