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

📄 well1.asm

📁 这是一个汇编编写得拼图小游戏 带有源码 这可是我一天得劳动果实
💻 ASM
📖 第 1 页 / 共 4 页
字号:
    COMPARE:  CMP       BH,[SI]
              JB        CHANGE1
              CMP       BH,[SI]
              JNE       NEXTONE0
              INC       SI

              CMP       AH,[SI]
              JB        CHANGE2
              CMP       AH,[SI]
              JNE       NEXTONE1
              INC       SI

              CMP       AL,[SI]
              JB        CHANGE3
              JMP       NEXTONE2
   NEXTONE0:  INC       SI

   NEXTONE1:
              INC       SI
   NEXTONE2:  ADD       SI,14
              LOOP      COMPARE
              JMP       WRITE
    CHANGE3:  DEC       SI
    CHANGE2:
              DEC       SI
    CHANGE1:
              LEA       DI,[SI]
              SUB       DI,10
              PUSH      SI
              PUSH      CX
              LEA       SI,HNAME
              MOV       CX,10
        CON:  MOV       BL,[DI]
              XCHG      [SI],BL
              MOV       [DI],BL
              INC       DI
              INC       SI
              LOOP      CON

              POP       CX
              POP       SI
              XCHG      BH,[SI]
              INC       SI
              XCHG      AH,[SI]
              INC       SI
              XCHG      AL,[SI]
              ADD       SI,14
              LOOP      CHANGE1

      WRITE:

              POP       BX
              POP       SI
              MOV       BX,SI       ;移动文件读写指针
              MOV       CX,0
              MOV       DX,0
              MOV       AL,00H
              MOV       AH,42H
              INT       21H

              MOV       CX,160      ;将缓冲区的内容写到文件中去
              MOV       BX,SI
              MOV       DX,OFFSET RBUFFER
              MOV       AH,40H
              INT       21H

              MOV       BX,SI       ;关闭文件
              MOV       AH, 3EH
              INT       21H


              POPJCQ
              RET
     COHEROS  ENDP

;----------------------------------------------------------
;name:dispheros
;----------------------------------------------------------
   DISPHEROS  PROC      FAR
              PUSHJCQ
              CLEARSCREENH      13,58,23,77
              ;CMP       AX,1
              ;JNZ       GA2

              ;MOV       DX,OFFSET FILE_1        ;打开文件,读方式
              ;JMP       GA3
        ;GA2:  MOV       DX,OFFSET FILE_2
              MOV       DX,SI
        GA3:  MOV       AL,00H
              MOV       AH,3DH
              INT       21H
              MOV       CX,10
              PUSH      AX
     CIRCLE:
              POP       AX
              MOV       BX,AX
              PUSH      AX
              PUSH      CX
              MOV       CX,16
              MOV       DX,OFFSET STRBUFFER
              MOV       AH,3FH
              INT       21H
              DISP_STRING_TEXT          STRBUFFER,HEROROW,58,16,0EH
              POP       CX
              INC       HEROROW
              LOOP      CIRCLE
              MOV       HEROROW,13
              POP       AX

              MOV       AH, 3EH
              INT       21H         ;guan bi wen jian

              POPJCQ
              RET
   DISPHEROS  ENDP


     DISP_DX  PROC      FAR
              PUSHJCQ
              MOV       AH,1
              MOV       CH,10H
              INT       10H

              LEA       DI,STEP
              MOV       AX,DX

              ADD       AL,0
              DAA
              JNC       BAI
              ADD       AH,1
        BAI:  ADD       AH,0
              DAA                   ;调整成十进制格式

              MOV       BX,AX
              AND       BX,000FH
              ADD       BL,30H
              MOV       [DI+7],BL

              MOV       BX,AX
              MOV       CL,4
              SAR       BX,CL
              AND       BX,000FH
              ADD       BL,30H
              MOV       [DI+6],BL

              MOV       BX,AX
              MOV       BL,BH
              AND       BX,000FH
              ADD       BL,30H
              MOV       [DI+5],BL


              POPJCQ
              RET
     DISP_DX  ENDP





;判断拼图是否成功1
  B_PANDUAN1  PROC      FAR
              PUSH      SI
              PUSH      DI

              LEA       SI,NUMBERS1
              LEA       DI,N1
              CMP       DI,[SI]
              JNZ       Q

              ADD       SI,2
              LEA       DI,N2
              CMP       DI,[SI]
              JNZ       Q

              ADD       SI,2
              LEA       DI,N3
              CMP       DI,[SI]
              JNZ       Q

              ADD       SI,2
              LEA       DI,N4
              CMP       DI,[SI]
              JNZ       Q

              ADD       SI,2
              LEA       DI,N5
              CMP       DI,[SI]
              JNZ       Q

              ADD       SI,2
              LEA       DI,N6
              CMP       DI,[SI]
              JNZ       Q

              ADD       SI,2
              LEA       DI,N7
              CMP       DI,[SI]
              JNZ       Q

              ADD       SI,2
              LEA       DI,N8
              CMP       DI,[SI]
              JNZ       Q

              MOV       AL,1
          Q:  POP       DI
              POP       SI


              RET
  B_PANDUAN1  ENDP


;判断拼图是否成功1
  B_PANDUAN2  PROC      FAR
              PUSH      SI
              PUSH      DI

              LEA       SI,NUMBERS2
              LEA       DI,N1
              CMP       DI,[SI]
              JNZ       M

              ADD       SI,2
              LEA       DI,N2
              CMP       DI,[SI]
              JNZ       M

              ADD       SI,2
              LEA       DI,N3
              CMP       DI,[SI]
              JNZ       Q2

              ADD       SI,2
              LEA       DI,N4
              CMP       DI,[SI]
              JNZ       M

              ADD       SI,2
              LEA       DI,N5
              CMP       DI,[SI]
              JNZ       M

              ADD       SI,2
              LEA       DI,N6
              CMP       DI,[SI]
              JNZ       Q2

              ADD       SI,2
              LEA       DI,N7
              CMP       DI,[SI]
              JNZ       Q2

              ADD       SI,2
              LEA       DI,N8
              CMP       DI,[SI]
              JNZ       Q2

              ADD       SI,2
              LEA       DI,N91
              CMP       DI,[SI]
              JNZ       Q2

              ADD       SI,2
              LEA       DI,N10
              CMP       DI,[SI]
          M:  JNZ       Q2

              ADD       SI,2
              LEA       DI,N11
              CMP       DI,[SI]
              JNZ       Q2

              ADD       SI,2
              LEA       DI,N12
              CMP       DI,[SI]
              JNZ       Q2

              ADD       SI,2
              LEA       DI,N13
              CMP       DI,[SI]
              JNZ       Q2

              ADD       SI,2
              LEA       DI,N14
              CMP       DI,[SI]
              JNZ       Q2

              ADD       SI,2
              LEA       DI,N15
              CMP       DI,[SI]
              JNZ       Q2


              MOV       AL,1
         Q2:  POP       DI
              POP       SI


              RET
  B_PANDUAN2  ENDP



;*****game子程序中调用的
          DISPLAY_NUMBER  PROC      FAR

              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              PUSH      DI

              MOV       AH,0FH
              INT       10H

              MOV       CH,0
              MOV       CL,[DI]
              INC       DI

  NEXT_CHAR:  ADD       DH,[DI+2]
              ADD       DL,[DI+3]
              MOV       AH,2
              INT       10H

              MOV       AL,[DI]
              MOV       BL,[DI+1]
              PUSH      CX
              MOV       CX,1
              MOV       AH,09H
              INT       10H
              POP       CX
              ADD       DI,4
              LOOP      NEXT_CHAR

              POP       DI
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
          DISPLAY_NUMBER  ENDP


            CLEAR_SCREEN  PROC      FAR

              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX

              MOV       AH,6
              MOV       AL,0
              MOV       CH,0
              MOV       CL,0
              MOV       DH,24
              MOV       DL,79
              MOV       BH,7
              INT       10H

              POP       DX
              POP       CX
              POP       BX
              POP       AX


              RET
            CLEAR_SCREEN  ENDP

      READ_8  PROC      FAR
              PUSH      CX
              PUSH      DX
              PUSH      AX

              MOV       DL,AL
              MOV       AH,0
              INT       1AH
              MOV       AX,DX
              AND       AX,000FH
              MOV       DL,8
              DIV       DL
              POP       DX
              MOV       AL,DL
              POP       DX
              POP       CX

              RET
      READ_8  ENDP



     READ_15  PROC      FAR
              PUSH      CX
              PUSH      DX
              PUSH      AX

              MOV       DL,AL
              MOV       AH,0
              INT       1AH
              MOV       AX,DX
              AND       AX,004FH
              MOV       DL,15
              DIV       DL
              POP       DX
              MOV       AL,DL
              POP       DX
              POP       CX

              RET
     READ_15  ENDP

       CODE3  ENDS


              END       START

⌨️ 快捷键说明

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