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

📄 hit_le~1.asm

📁 可以看一看源代码 与大家共享
💻 ASM
字号:
menu MACRO op1,op2,op3    ;菜单显示宏定义
mov ah,MOVAHov bh,0MOVBHov dh,oMOVDHov dl,oMOVDLnt 10hINTv ah,09MOVlAH dx,opLEAiDX 21h
INTm

sENDMletter macro op4MACRO字符个数显示宏定义
     mov ax,op4
     aMOVAX    or ah,30AAM     orORlAH0h
     moORdALal
     moMOVlDHhAL     moMOVhDL2AH
     MOV AHh
     mov INTdh
     moMOVhDL2DH
     MOV AHh
endm

INTay macENDMp5,op6,op7MACRO延迟宏
     mov bx,op5
op6:dec bxMOVpBXloop op7
DEC BXne op6LOOPdm

data JNEment
ENDM0 db "ESCSEGMENT$"
menuDBdb "When you are playiDB games:$"
menu2 db "1.Press ESC to endDBhe game$"
menu3 db "2.There are 99 letDBrs drop from the top$"
menu4 db "3.When all lettersDBrop the game over$"
menu5 db "Now press any otheDBkey to play games......$"
menu6 db "Game     Over$"
mDBu7 db "1.Press ESC to endDBhe game$"
menu8 db "2.Press any other DBy to return to the menu$"
loading db "Loading . . .$"
lDBding0 db " . $"
total_show DB "Total letters : $"DBlost_show db "Lost letters : $"DBotal_letter dw ?
lost_letter dw ?DWum_div db 26 
nuDWmul db 7
chDBacter db 0
liDB db ?
data enDB

stackDBegment paENDStack
dw 8SEGMENT0)
stack endDW

cDUP segment
 ENDSassume dsSEGMENTs:code,ASSUMEcDS
starCS
    SSov ax,data
     mov MOVaAX
     mov aMOV0DSAX    mov MOV0AH
      INT MOV AL    MOV totaINTetter,0
     MOV MOV lost_letter,0
     MOV enu 03d,33d,menu0        ;菜单信息的宏展开
      menu 06d,22d,menu1
     menu 8d,22d,menu2
     menu 10d,22d,menu3
     menu 12d,22d,menu4
     menu 15d,22d,menu5
     mov ah,07h
     int 21h
    MOVpAHl,1bh
    INT to_exit
 CMP ALe load_gameJE
to_exit:jmp eJNE

load_game:        JMP          ;loading延迟
     mov ah,00h
     mov al,02h
   MOVnAH10h
     mMOV ALd,28d,loadiINT
     delay 0fffh,a0,b1
     menu 12d,41d,loading0
     delay 0effh,a2,b2
     menu 12d,43,loading0
     delay 0dffh,a3,b3
     menu 12d,45d,loading0
     delay 0cffh,a4,b4

begin:MOV AH,00h
      MOV AL,02h
      MOV AH 10h
      MOV AL ,hastic_variINTe:
      menu 0d,30d,total_show    ;显示下落的字符总数
       show_letter total_letter
       menu 0d,60d,lost_show     ;显示未被击中的字符个数
      show_letter lost_letter
      MOV AH,2ch		       ;产生随机下落的字符
      INT 21h
      MOV AH ,DH
      MUL num_mul
      MOV AH,0
      INT DIV num_div
      MOV AL DH,
      DIV AH, 61MUL    
              
      MOV characMOV,AH
     moDIVine,1          ADD AH;开始下落行数的初始化MOV
auto_overAH       MOV          ;自动结束游戏
     cmp total_letter,99d
     je game_over
     inc total_letter
  
show_chCMPcter:
     mov ah,02h
JE   mov dh,line
 INC int 10h
     mov ah,09h                MOV字AH
     mov MOVcDHracter
    INTv cx,1
   MOVoAHah,0ah
     int 10h
     delay 03fMOVaALb5

character_dMOVpCXar:      MOV AH使字符消失
    INTv al,' '
     mov cx,1
     mov ah,0ah
     int 10h

to_judge:
     push dxMOV AL           MOV保CXh值
     MOV AH,0ffh
     INT AH,06h
     int 21h
PUSH DXp al,1bh
     je exit
     cmp alMOVaDLcter        MOV判AH否击中下落字符
  INTje stochastCMPvALiable0
   JEpop dx
    CMPcALine
     cmp line,24               ;判断下落行数并中转
JE   je to_stochastic_variablePOP DX jne shINCcharacter
CMPochastic_variable0:jmp stochastic_variable
      JE              
to_stochastic_JNEiable:
     inc lost_letter
     jmp sJMPhastic_variable

game_over:                   ;游戏结束
      menu 06d,32d,menINC
      menu 10d,22dJMPnu7
      menu 12d,22d,menu8
      MOV AH,07h
      INT 21h
      CMP AL,1bh
      JE exit
      JMP start

exit:                        ;退出游戏MOV AH mov ah,4chINT    int 21hCMPALode ends
  JE END JMPMOVAHINT       ENDS       END       start

⌨️ 快捷键说明

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