⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 汇编俄罗斯.asm

📁 俄罗斯方块的汇编版
💻 ASM
📖 第 1 页 / 共 3 页
字号:
stack         SEGMENT  stack
              DW      512  DUP (0)
stack         ENDS

data          SEGMENT 
	     suijibian	DB	?
           suijibian2   DB        ?
           buffer1	DB        13,10,'please enter a number: (1-9)$'
           buffer2 	DB        13,10,'errow,please enter a number again:(1-9)$'
           buffer3 	DB        'game over!!! $'  
           buffer33    	DB        'Do you want play again? (Y/N)$'   
           buffer4 	DB        'your score:$'
           buffer5 	DB        'next:$'
              Colordi	DB        06h
              colorbiao DB        02h
              jilie DW        300
              jihang DW       130 
              CLass     DW    40,250,0000h ,0001h,0002h,0004h,0005h,0006h,0008h,000ah,000bh,000ch
              		DW            0100h,0102h,0106h,0108h,010ch
                        DW            0200h,0202h,0204h,0205h,0206h,0208h,020ah,020bh,020ch
                        DW            0300h,0302h,0304h,0308h,030ch
                        DW           0400h,0401h,0402h,0404h,0405h,0406h,0408h,040ah,040bh,040ch,0f0fh
              tu1		DW	100,380,0000h,0100h,0200h,0001h,0f0fh
              tu2		DW 	100,380,0000h,0100h,0001h,0101h,0f0fh
              tu3		DW 	100,380,0000h,00ffh,0001h,0100h,0f0fh
              tu4		DW 	100,380,0000h,0100h,0200h,0ff00h,0f0fh
              tu5		DW	100,380,0000h,0100h,0200h,00ffh,0f0fh
              tu6 	DW    100,380,0000h,0100h,0101h,00ffh,0f0fh
              tu7		DW    100,380,0000h,0001h,0100h,01ffh,0f0fh
            table DW        tu1,tu2,tu3,tu4,tu5,tu6,tu7
           score        DB        '$',5 DUP(0)            
           sudu  		DB        ?

           tutong DW       10 DUP (0f0fh)
           tuprc  DW       10 DUP (0f0fh)
             hang DW        ?
              lie DW        ? 
             hang1 DW        ?
             lie2 DW        ?
             color DB        ?
             SIgn DB        ?
          xiaonum DB        0
          xiaosign DB        0
          xiaosign2 DB       0
          beginxiao       DW        0
           ENDxiao         DW        0
           ENDSign DB        0
              tuend DB        60 DUP(0)
              tupan DB        375 DUP(0),30 DUP(1) 
              
data          ENDS
           
code          SEGMENT        
              ASSUME    CS:code,DS:data,SS:stack
             main PROC      FAR
        start:MOV       AX,data
              MOV       DS,AX
              MOV       ES,AX
prebegin:     MOV       AH,0
              MOV       AL,3
              INT       10h
              MOV       AH,9
              LEA       DX,buffer1
              INT       21h
 NExtmain0:   MOV       AH,1
              INT       21h
              CMP       AL,39h
              JA        NExtmain2
              CMP       AL,31h
              JB        NExtmain2
              MOV       AH,3AH
              SUB       AH,AL
              MOV       sudu,AH
              JMP       NExtmain3
  NExtmain2:  MOV       AH,9
              MOV       DX,OFFSET buffer2
              INT       21h
              JMP       NExtmain0             
  NExtmain3:  MOV       AH,0      ;?????
              MOV       AL,12h
              INT       10h
              ;???/
              
              MOV       CX,299     ;???
      back11: MOV       DX,130
      back10: MOV       AH,0ch
              MOV       AL,Colordi
              MOV       BH,0
              INT       10h
              INC       DX
              CMP       DX,380
              JNZ       back10
              INC       CX
              CMP       CX,450
              JNZ       back11
              
              MOV       CX,200     ;???
     back111: MOV       DX,130
     back100: MOV       AH,0ch
              MOV       AL,29h
              MOV       BH,0
              INT       10h
              INC       DX
              CMP       DX,380
              JNZ       back100
              INC       CX
              CMP       CX,299
              JNZ       back111
              
              MOV       BX,OFFSET buffer4
              MOV       DX,091ah
  NExtmain4:  MOV       AL,[BX]
              PUSH      BX
              MOV       AH,2
              MOV       BH,0
              INT       10h
              MOV       AH,9
              MOV       BH,0
              MOV       BL,95h
              MOV       CX,1
              INT       10h
              INC       DL
              POP       BX            
              INC       BX
              CMP       BYTE PTR [BX],'$'
              JNZ       NExtmain4
              
              MOV       BX,OFFSET buffer5
              MOV       DX,0c1ch
  NExtmain5:  MOV       AL,[BX]
              PUSH      BX
              MOV       AH,2
              MOV       BH,0
              INT       10h
              MOV       AH,9
              MOV       BH,0
              MOV       BL,95h
              MOV       CX,1
              INT       10h
              INC       DL
              POP       BX            
              INC       BX
              CMP       BYTE PTR [BX],'$'
              JNZ       NExtmain5

              
              MOV       Color,0dh
              MOV       BX,OFFSET CLass
              ADD       BX,4
 NExtdayinm:   MOV       AL,[BX+1]
              MOV       DL,10
              IMUL      DL
              ADD       AX,[CLass]
              MOV       hang,AX
              MOV       AL,[BX]
              MOV       DL,10
              IMUL      DL
              ADD       AX,[CLass+2]
	        MOV       lie,AX
              CALL      dayin1
              ADD       BX,2
              CMP       BYTE PTR [BX],0fh
              JNZ       nextdayinm    
		  CALL      INCscore
              
              CALL      suiji                ;????????? 
              MOV       AL,suijibian            
              MOV       BL,2
              MUL       BL              
              MOV       BX,AX
              MOV       SI,[BX+table]
              LEA       DI,tuprc
              MOV       CX,14
              CLD
              REP       MOVSb

              
      begin: 
              MOV       SIgn,0
              
              MOV       SI,OFFSET tuprc
              LEA       DI,tutong
              MOV       CX,14
              CLD
              REP       MOVSb
              
              MOV       color,29h
              CALL      dayinprc
              CALL      suiji                ;????????? 
              MOV       AL,suijibian            
              MOV       BL,2
              MUL       BL              
              MOV       BX,AX
              
              MOV       SI,[BX+table]
              LEA       DI,tuprc
              MOV       CX,14
              CLD
              REP       MOVSb
              MOV       color,0dh
              CALL      dayinprc 
              MOV       CX,30
       continue:
             CALL      panxia
              CMP       SIgn,0
              JZ        NExtm
              MOV       SIgn,0
              CALL      cunchu
              CALL      ENDMain
              CMP       ENDSign,0
              JNZ       NExtmain
              
              CALL      xiaohang
              JMP       begin
      NExtm:  MOV       AL,colordi
              MOV       Color,AL
              CALL      dayin 
              ADD       tutong,10
              MOV       AL,colorbiao
              MOV       Color,AL
              CALL      dayin
              CALL      WAITe
              LOOP       continue
              JMP       begin
     NExtmain:
              
              MOV       AH,0
              MOV       AL,3
              INT       10H
              MOV       AH,2
              MOV       BH,0
              MOV       DH,09h
              MOV       DL,22h
              INT       10h
              MOV       AH,9
              LEA       DX,buffer3
              INT       21h

              MOV       AH,2
              MOV       BH,0
              MOV       DH,0bh
              MOV       DL,19h
              INT       10h
              MOV       AH,9
              LEA       DX,buffer33
              INT       21h
              MOV       AH,1
              INT       21h
              CMP       AL,89
              JZ       NExtgame
              CMP       AL,121
              JZ       NExtgame
              MOV       AH,4ch
              INT       21h
              
NExtgame:     LEA       BX,score
              MOV       BYTE PTR [BX],'$'
              INC       BX
              LEA       DX,tupan
              ADD       DX,375
  CLear:      MOV       BYTE PTR [BX],0
              INC       BX
              CMP       BX,DX
              JNZ       CLear
              JMP       prebegin
   
      main    ENDP        
                           

              
              
        dayIN PROC      NEAR
            PUSH      AX
	      PUSH  	BX
	      PUSH 	DX           
              MOV       BX,OFFSET tutong
              ADD       BX,4
 NExtdayin:   MOV       AL,[BX+1]
              MOV       DL,10
              IMUL      DL
              ADD       AX,[tutong]
              CMP       AX,jihang
              JB       NExtdain1
              MOV       hang,AX
              MOV       AL,[BX]
              MOV       DL,10
              IMUL      DL
              ADD       AX,[tutong+2]
	        MOV       lie,AX
              CALL      dayin1
  NExtdain1:  ADD       BX,2
              CMP       BYTE PTR [BX],0fh
              JNZ       nextdayin 
	      POP 	DX
	      POP 	BX
	      POP 	AX
 		RET
              dayin ENDP
              
        dayINprc PROC      NEAR
              PUSH      AX
	        PUSH  	BX
	        PUSH 	DX           
              MOV       BX,OFFSET tuprc
              ADD       BX,4
NExtdayinprc: MOV       AL,[BX+1]
              MOV       DL,10
              IMUL      DL
              ADD       AX,[tuprc]
              ADD       AX,120
              MOV       hang,AX
              MOV       AL,[BX]
              MOV       DL,10
              IMUL      DL
              ADD       AX,[tuprc+2]
              SUB       AX,140
	        MOV       lie,AX
              CALL      dayin1
              ADD       BX,2
              CMP       BYTE PTR [BX],0fh
              JNZ       nextdayinprc 
	        POP 	DX
	        POP 	BX
	        POP 	AX
 	           	RET
      dayinprc ENDP
              
              
              
              dayin1    PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              MOV       CX,0
              
       back1: MOV       DX,0
        back: MOV       AH,0ch

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -