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

📄 tss.asm

📁 汇编写的贪吃蛇游戏
💻 ASM
📖 第 1 页 / 共 2 页
字号:
              MOV       AX,S_TAIL_Y
              MOV       TEMPY,AX
              DEC       S_TAIL_X
              MOV       AH,0DH
              MOV       BH,0
              MOV       DX,S_TAIL_X
              MOV       CX,S_TAIL_Y
              INT       10H
              CMP       AL,2
              JZ        NEXT1
              INC       S_TAIL_X
              INC       S_TAIL_Y
              MOV       AH,0DH
              MOV       BH,0
              MOV       DX,S_TAIL_X
              MOV       CX,S_TAIL_Y
              INT       10H
              CMP       AL,2
              JZ        NEXT1
              INC       S_TAIL_X
              DEC       S_TAIL_Y
              MOV       AH,0DH
              MOV       BH,0
              MOV       DX,S_TAIL_X
              MOV       CX,S_TAIL_Y
              INT       10H
              CMP       AL,2
              JZ        NEXT1
              DEC       S_TAIL_X
              DEC       S_TAIL_Y
              MOV       AH,0DH
              MOV       BH,0
              MOV       DX,S_TAIL_X
              MOV       CX,S_TAIL_Y
              INT       10H
              JMP       NEXT1

              JMP       TTT
      NEXT1:  JMP       NEXT2
        TTT:

              JMP       RRR
    ADDTAIL:  CALL      DISPNUM
              MOV       AX,EGG_X
              MOV       EGG_X_D,AX
              ADD       EGG_X_D,7
              MOV       AX,EGG_Y
              MOV       EGG_Y_R,AX
              ADD       EGG_Y_R,7
              MOV       DX,EGG_X
        ZYX:  MOV       CX,EGG_Y
        XYZ:  MOV       AH,0CH
              MOV       BH,0
              MOV       AL,0
              INT       10H
              INC       CX
              CMP       CX,EGG_Y_R
              JB        XYZ
              INC       DX
              CMP       DX,EGG_X_D
              JB        ZYX

     REMOVE:  MOV       AX,X
              MOV       EGG_X,AX
              ADD       AX,7
              MOV       EGG_X_D,AX
              MOV       AX,Y
              MOV       EGG_Y,AX
              ADD       AX,7
              MOV       EGG_Y_R,AX

              MOV       DX,EGG_X
        BBA:  MOV       CX,EGG_Y
        ABB:  MOV       AH,0DH
              MOV       BH,0
              INT       10H
              CMP       AL,2
              JNZ       NEXT4
              ADD       X,10
              ADD       Y,10
              CMP       X,400
              JB        REMOVE
              JA        ZZZ
              CMP       Y,500
              JB        REMOVE
        ZZZ:  MOV       X,40
              MOV       Y,40
              JMP       REMOVE
      NEXT4:  INC       CX
              CMP       CX,EGG_Y_R
              JB        ABB
              INC       DX
              CMP       DX,EGG_X_D
              JB        BBA
              MOV       AX,X
              MOV       EGG_X,AX
              ADD       AX,7
              MOV       EGG_X_D,AX
              MOV       AX,Y
              MOV       EGG_Y,AX
              ADD       AX,7
              MOV       EGG_Y_R,AX
              MOV       DX,EGG_X
        HJK:  MOV       CX,EGG_Y
        KJH:  MOV       AH,0CH
              MOV       AL,0CH
              MOV       BH,0
              INT       10H
              INC       CX
              CMP       CX,EGG_Y_R
              JB        KJH
              INC       DX
              CMP       DX,EGG_X_D
              JB        HJK
              MOV       AH,0CH
              MOV       BH,0
              MOV       AL,2
              MOV       DX,TEMPX
              MOV       CX,TEMPY
              INT       10H
              MOV       AX,TEMPX
              MOV       S_TAIL_X,AX
              MOV       AX,TEMPY
              MOV       S_TAIL_Y,AX
              JMP       PHEAD
        RRR:

      NEXT2:  MOV       AH,0CH
              MOV       AL,0
              MOV       BH,0
              MOV       DX,TEMPX
              MOV       CX,TEMPY
              INT       10H

              MOV       AH,S_DIRTIN
              MOV       TEMP_DIR,AH
              MOV       AH,1
              INT       16H
              JZ        BG1
              MOV       AH,0        ;取走键盘缓冲区中的内容,以便在以后的循环中INT16的1号功能可以接收字符
              INT       16H
              CMP       AH,SUP
              JZ        SU
              CMP       AH,SDOWN
              JZ        SD
              CMP       AH,SLEFT
              JZ        SL
              CMP       AH,SRIGHT
              JZ        SR
              CMP       AH,SESC
              JZ        PAUSE
              JMP       BG
         SU:  MOV       S_DIRTIN,1
              JMP       BG
         SD:  MOV       S_DIRTIN,2
              JMP       BG
         SL:  MOV       S_DIRTIN,3
              JMP       BG
         SR:  MOV       S_DIRTIN,4
              JMP       BG

      PAUSE:  MOV       DX,29
     MENUB2:  MOV       CX,539
     MENUB1:  MOV       AH,0CH
              MOV       AL,1
              MOV       BH,0
              INT       10H
              INC       CX
              CMP       CX,629
              JB        MENUB1
              ADD       DX,100
              CMP       DX,130
              JB        MENUB2

              JMP       BBB
        BG1:  MOV       DX,29
     MENUB4:  MOV       CX,539
     MENUB3:  MOV       AH,0CH
              MOV       AL,0
              MOV       BH,0
              INT       10H
              INC       CX
              CMP       CX,629
              JB        MENUB3
              ADD       DX,100
              CMP       DX,130
              JB        MENUB4
              MOV       CX,539
              MOV       DX,29
     MENUA3:  MOV       AH,0CH
              MOV       AL,0
              MOV       BH,0
              INT       10H
              INC       DX
              CMP       DX,130
              JB        MENUA3
              MOV       CX,629
              MOV       DX,29
     MENUA4:  MOV       AH,0CH
              MOV       AL,0
              MOV       BH,0
              INT       10H
              INC       DX
              CMP       DX,130
              JB        MENUA4
              JMP       BG
        BBB:

              MOV       CX,539
              MOV       DX,29
     MENUA1:  MOV       AH,0CH
              MOV       AL,1
              MOV       BH,0
              INT       10H
              INC       DX
              CMP       DX,130
              JB        MENUA1
              MOV       CX,629
              MOV       DX,29
     MENUA2:  MOV       AH,0CH
              MOV       AL,1
              MOV       BH,0
              INT       10H
              INC       DX
              CMP       DX,130
              JB        MENUA2
              MOV       AH,0
              INT       16H
              CMP       AH,SESC
              JZ        BG1
              CMP       AH,SKEYN
              JZ        AGAIN1
; CMP AH,SKEYL
; JZ LOADGAME
; CMP AH,SKEYS
; JZ SAVEGAME
              CMP       AH,SKEYQ
              JZ        QUIT
              JMP       PAUSE

              JMP       CCC
     AGAIN1:  JMP       AGAIN
        CCC:


        RP1:  MOV       AH,2
              MOV       BH,0
              MOV       DH,14
              MOV       DL,26
              INT       10H
              MOV       AH,9
              MOV       DX,OFFSET CHAR
              INT       21H
        ASK:  MOV       AH,0
              INT       16H
              CMP       AL,59H
              JZ        AGAIN1
              CMP       AL,79H
              JZ        AGAIN1
              CMP       AL,4EH
              JZ        QUIT
              CMP       AL,6EH
              JZ        QUIT
              JMP       ASK
       QUIT:
              MOV       AH,0
              MOV       AL,3
              INT       10H
              RET
       PROC1  ENDP
     DISPNUM  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX

              INC       GEWEI
              CMP       GEWEI,9
              JBE       DISP
              MOV       GEWEI,0
              INC       SHIWEI
              CMP       SHIWEI,9
              JBE       DISP
              MOV       SHIWEI,0
              INC       BAIWEI
              CMP       BAIWEI,9
              JBE       DISP
              MOV       BAIWEI,0
              INC       QIANWEI
              CMP       QIANWEI,9
              JBE       DISP
              MOV       QIANWEI,0
              INC       WANWEI
              CMP       WANWEI,9
              JBE       DISP
              MOV       WANWEI,0
       DISP:  MOV       AH,2
              MOV       BH,0
              MOV       DH,0
              MOV       DL,0
              INT       10H
              MOV       AH,2
              MOV       DL,WANWEI
              ADD       DL,30H
              INT       21H
              MOV       AH,2
              MOV       BH,0
              MOV       DH,0
              MOV       DL,1
              INT       10H
              MOV       AH,2
              MOV       DL,QIANWEI
              ADD       DL,30H
              INT       21H
              MOV       AH,2
              MOV       BH,0
              MOV       DH,0
              MOV       DL,2
              INT       10H
              MOV       AH,2
              MOV       DL,BAIWEI
              ADD       DL,30H
              INT       21H
              MOV       AH,2
              MOV       BH,0
              MOV       DH,0
              MOV       DL,3
              INT       10H
              MOV       AH,2
              MOV       DL,SHIWEI
              ADD       DL,30H
              INT       21H
              MOV       AH,2
              MOV       BH,0
              MOV       DH,0
              MOV       DL,4
              INT       10H
              MOV       AH,2
              MOV       DL,GEWEI
              ADD       DL,30H
              INT       21H

              POP       DX
              POP       CX
              POP       BX
              POP       AX

              RET
     DISPNUM  ENDP

        CODE  ENDS
              END       START

⌨️ 快捷键说明

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