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

📄 well1.asm

📁 这是一个汇编编写得拼图小游戏 带有源码 这可是我一天得劳动果实
💻 ASM
📖 第 1 页 / 共 4 页
字号:
              DB        0DBH,10H,0,1

              DB        0DBH,10H,1,-5
              DB        0DDH,1,0,1
              DB        0DEH,1,0,1
              DB        0DCH,1,0,1
              DB        0DDH,1,0,1
              DB        0DBH,10H,0,1

              DB        0DBH,10H,1,-5
              DB        0DDH,1,0,1
              DB        0DBH,10H,0,1
              DB        0DBH,10H,0,1
              DB        0DDH,1,0,1
              DB        0DBH,10H,0,1

              DB        0DBH,10H,1,-5
              DB        0DDH,1,0,1
              DB        0DBH,10H,0,1
              DB        0DBH,10H,0,1
              DB        0DDH,1,0,1
              DB        0DBH,10H,0,1

         N15  DB        24
              DB        0DBH,10H,0,0
              DB        0DDH,1,0,1
              DB        0DDH,1,0,1
              DB        0DFH,1,0,1
              DB        0DFH,1,0,1
              DB        0DBH,10H,0,1

              DB        0DBH,10H,1,-5
              DB        0DDH,1,0,1
              DB        0DDH,1,0,1
              DB        0DBH,10H,0,1
              DB        0DBH,10H,0,1
              DB        0DBH,10H,0,1

              DB        0DBH,10H,1,-5
              DB        0DDH,1,0,1
              DB        0DFH,1,0,1
              DB        0DFH,1,0,1
              DB        0DDH,1,0,1
              DB        0DBH,10H,0,1

              DB        0DBH,10H,1,-5
              DB        0DDH,1,0,1
              DB        0DCH,1,0,1
              DB        0DCH,1,0,1
              DB        0DDH,1,0,1
              DB        0DBH,10H,0,1

         SHU  DB        23
              DB        0B0H,05H,0,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0

              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0

              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0

              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0
              DB        0B0H,05H,1,0

        MADE  DB        'MADE BY MOMO'
        WELL  DB        'W E L C O M E !'
        STR0  DB        '****************************************'
        STR1  DB        'please put in you choice:'
        GAM1  DB        '1->game one'
        GAM2  DB        '2->game two'
         QUI  DB        'q->quit'

        XING  DB        74 DUP(16H)
         EXI  DB        'q->exit'
        NEWG  DB        'n->new game'
        LEFT  DB        'a->left'
       RIGHT  DB        'd->right'
          UP  DB        'w->up'
        DOWN  DB        's->down'
      TOPTEN  DB        'top 10:'
     NA_STEP  DB        'name       step'



    NUMBERS1  DW        18 DUP(0)
    NUMBERS2  DW        30 DUP (0)
         SEC  DB        'You are successful.'
        KONG  DB        '                                                                 '
       PRESS  DB        'please input you name:'

        LOAD  DB        'Loading...'
          KO  DB        '          '


        STEP  DB        'step:999'
     GAMEONE  DB        01H,' Game One'
     GAMETWO  DB        0FH,' Game Two'
         YOU  DB        20 DUP(2EH)

 ;***********************

     RBUFFER  DB        160 DUP(' ')            ;zong zijie shu
   STRBUFFER  DB        16 DUP (' ')            ;mei ge de ge shu
     HEROROW  DB        13
;rate
       FNAME  DB        12,10,12 DUP(' ')
       HNAME  DB        10 DUP(' '),'$'
      FILE_1  DB        'file1.txt',0
      FILE_2  DB        'file2.txt',0

     FILE_DA  DB        '01.oooooooooo999'
              DB        '02.oooooooooo999'
              DB        '03.oooooooooo999'
              DB        '04.oooooooooo999'
              DB        '05.oooooooooo999'
              DB        '06.oooooooooo999'
              DB        '07.oooooooooo999'
              DB        '08.oooooooooo999'
              DB        '09.oooooooooo999'
              DB        '10.oooooooooo999'
       CLEAR  DB        'c->clear top 10'

        DATA  ENDS


 ;********************************************************************************
; 宏定义
;*********************************************************************************

 PLACECURSOR  MACRO     OP1,OP2     ;zhi guang biao weizhi
              ;PUSH      AX
              MOV       AH,02H
              MOV       BH,00H
              MOV       DH,OP1
              MOV       DL,OP2
              ;POP       AX
              INT       10H
              ENDM


            CLEARSCREENH  MACRO     OP1,OP2,OP3,OP4         ;qingping   zuo you
              PUSHJCQ

              MOV       AH,06H
              MOV       AL,00H
              MOV       BH,00H
              MOV       CH,OP1
              MOV       CL,OP2
              MOV       DH,OP3
              MOV       DL,OP4
              INT       10H
              POPJCQ
              ENDM


       SUIJI  MACRO     ADR
              LOCAL     CONTINE
    CONTINE:

              CALL      FAR PTR READ_8
              ADD       AH,AH
              MOV       AL,AH
              MOV       AH,0
              ;LEA       DI,NUMBERS
              MOV       SI,AX
              CMP       NUMBERS1[SI],0
              JNZ       CONTINE
              LEA       DI,ADR
              MOV       NUMBERS1[SI],DI
              ENDM

      SUIJI2  MACRO     ADR
              LOCAL     CONTINE

    CONTINE:
              CALL      FAR PTR READ_15
              ADD       AH,AH
              MOV       AL,AH
              MOV       AH,0
              ;LEA       DI,NUMBERS
              MOV       SI,AX
              CMP       NUMBERS2[SI],0
              JNZ       CONTINE
              LEA       DI,ADR
              MOV       NUMBERS2[SI],DI
              ENDM



 PLAY_ALLNUM  MACRO     ID,HANG,LEI ;输出一个数字


              MOV       DI, ID
              MOV       DH,HANG
              MOV       DL,LEI
              CALL      FAR PTR DISPLAY_NUMBER



              ENDM


        DISP_STRING_TEXT  MACRO     ADRESS,HANG,LEI,LEN,SHUXING         ;在某行某列上输出一个字符串
              PUSH      BP
              PUSH      DX
              PUSH      CX
              PUSH      BX
              PUSH      AX

              MOV       BP,SEG ADRESS
              MOV       ES,BP
              MOV       BP,OFFSET ADRESS
              MOV       CX,LEN
              MOV       DH,HANG
              MOV       DL,LEI
              MOV       BL,SHUXING
              MOV       AL,1
              MOV       AH,13H
              INT       10H

              POP       AX
              POP       BX
              POP       CX
              POP       DX
              POP       BP

              ENDM

     PUSHJCQ  MACRO
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              PUSH      DI
              PUSH      SI
              ENDM
      POPJCQ  MACRO
              POP       SI
              POP       DI
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              ENDM


      STACK1  SEGMENT   PARA STACK
              DB        1024 DUP(?)
      STACK1  ENDS
 ;**************************************************************************************
;code代码段,主程序段
;***************************************************************************************
        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA

      START:  MOV       AX,DATA
              MOV       DS,AX

              MOV       AH,0
              MOV       AL,3
              INT       10H

              MOV       AH,1
              MOV       CH,10H
              INT       10H


      FIRST:  CALL      FAR PTR CLEAR_SCREEN
              DISP_STRING_TEXT          MADE 0,65,12,01H
              DISP_STRING_TEXT          WELL,9,33 13,03H
              DISP_STRING_TEXT          STR0,11,20,STR1-STR0,03H
              DISP_STRING_TEXT          GAM1,13,35,GAM2-GAM1,03H
              DISP_STRING_TEXT          GAM2,15,35,QUI-GAM2,03H
              DISP_STRING_TEXT          QUI,17,35,XING-QUI,03H
             ; DISP_STRING_TEXT          STR1,20,0,25,0EH        ;显示首页信息

    GETCHAR:



              MOV       AH,07H      ;从键盘输入一个字符,不回显
              INT       21H


              CMP       AL,'q'
              JZ        QUIT

              CMP       AL,'1'
              JNZ       NET         ;若选择GAME则清屏,转GAME
              CALL      FAR PTR CLEAR_SCREEN
              CALL      FAR PTR GAME1
              JMP       FIRST

        NET:  CMP       AL,'2'
              JNZ       GETCHAR
              CALL      FAR PTR CLEAR_SCREEN
              CALL      FAR PTR GAME2
              JMP       FIRST


       QUIT:  MOV       AH,4CH
              INT       21H



        CODE  ENDS


 ;**************************************************************************
; code 1,子程序game
;****************************************************************************
       CODE1  SEGMENT
              ASSUME    CS:CODE1,DS:DATA
       GAME1  PROC      FAR

              PUSHJCQ


              MOV       SI,OFFSET FILE_1
              CALL      FAR PTR DISPHEROS
              DISP_STRING_TEXT          NEWG,2,60,11,0DH
              DISP_STRING_TEXT          LEFT,3,60,RIGHT-LEFT,0DH
              DISP_STRING_TEXT          RIGHT,4,60,UP-RIGHT,0DH
              DISP_STRING_TEXT          UP,5,60,DOWN-UP,0DH
              DISP_STRING_TEXT          DOWN,6,60,TOPTEN-DOWN,0DH
              DISP_STRING_TEXT          CLEAR,7,60,15,0DH
              DISP_STRING_TEXT          EXI,8,60,NEWG-EXI,0DH
              DISP_STRING_TEXT          TOPTEN,10,60,6,04H
              DISP_STRING_TEXT          NA_STEP,11,60,NUMBERS1-NA_STEP,04H
              DISP_STRING_TEXT          XING,0,3,74,0DH
              DISP_STRING_TEXT          XING,24,3,74,0DH
              DISP_STRING_TEXT          GAMEONE,2,3,GAMETWO-GAMEONE,20H
              DISP_STRING_TEXT          YOU,9,56,20,0DH

              LEA       DI,SHU
              PLAY_ALLNUM       DI,1,55

   NEWGAME1:  LEA       DI,NUMBERS1
              MOV       CX,18
      NEXT1:  MOV       BYTE PTR [DI],0
              INC       DI
              LOOP      NEXT1

              DISP_STRING_TEXT          LOAD,10,20,10,07H
              SUIJI     N8
              SUIJI     N1
              SUIJI     N2
              SUIJI     N7
              SUIJI     N3
              SUIJI     N4
              SUIJI     N5
              SUIJI     N6
              LEA       AX,N9
              LEA       DI,NUMBERS1
              MOV       [DI+16],AX  ;设置出始的数字位置
              MOV       BX,2
              MOV       CX,2        ;设置空格的出始位置
              MOV       DX,0        ;记录移动的次数

              ADD       DI,16       ;设置di的出始位置
              DISP_STRING_TEXT          KO,10,20,10,07H

    SHUCHU1:  LEA       SI,NUMBERS1 ;输出9个数字
              PUSH      DI
              PUSH      DX
              PLAY_ALLNUM       [SI],5,15
              PLAY_ALLNUM       [SI+2],5,23
              PLAY_ALLNUM       [SI+4],5,31

              PLAY_ALLNUM       [SI+6],10,15
              PLAY_ALLNUM       [SI+8],10,23
              PLAY_ALLNUM       [SI+10],10,31
              PLAY_ALLNUM       [SI+12],15,15
              PLAY_ALLNUM       [SI+14],15,23
              PLAY_ALLNUM       [SI+16],15,31           ;输出完毕
              POP       DX
              POP       DI


   PANDUAN1:
              CALL      FAR PTR DISP_DX         ;输出DX
              DISP_STRING_TEXT          STEP,1,45,8,0CH

              MOV       AL,0
              CALL      FAR PTR B_PANDUAN1
              CMP       AL,1
              JNZ       GETCHAR1

              DISP_STRING_TEXT          SEC,22,3,KONG-SEC,01H   ;chenggong tishi
              JMP       L01
         L1:  JMP       NEWGAME1
        L01:  DISP_STRING_TEXT          PRESS,22,22,LOAD-PRESS,01H          ;chenggong mane



              MOV       SI,OFFSET FILE_1
              CALL      FAR PTR FILE0           ;cheng gone le


              JMP       NEWGAME1

   GETCHAR1:

              MOV       AH,07H

⌨️ 快捷键说明

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