down.asm

来自「用汇编语言实现的类似DOS下打字的游戏」· 汇编 代码 · 共 72 行

ASM
72
字号
; 游戏界面上方字母随机下落的子程序
;入口参数--------------主程序中的字母表table
;出口参数--------------键盘的输入值ax

down proc far

	push cx
	push dx
	push ax
	push si

	INC TOTAL	;下降的字符个数的计数器增一
        MOV CX,1
        MOV DH,1
	call far ptr random
        MOV DL,BL	;bl为random产生的随机数
REPTDO:
        MOV AH,2
        INT 10H            ; set cursor position
        MOV SI,BL
        MOV AL,TABLE[SI]
        MOV AH,10
        INT 10H            ; display spade
        CALL DELAY
        MOV AL,0
        MOV AH,10
        INT 10H

	MOV AH,1	;判断键盘是否有输入
	INT 16H
	JZ  COND 	;无输入时转字符继续下落
	CALL FAR PTR SPEKEY	;有输入时转特殊键处理
	
COND:   INC DH
        CMP DH,24
        JNE REPTDO

        MOV DH,1
        MOV DL,BL
        MOV AH,2
        INT 10H            ;recover the top character
        MOV SI,BL
        MOV AL,TABLE[SI]
        MOV AH,10
        INT 10H          

	pop si
	pop ax
	pop dx
	pop cx
	
	ret
DOWN ENDP
     

DELAY PROC FAR
      PUSH CX
      PUSH DX
      MOV  DX,32
DL1:
      MOV CX,0FFFFH
DL2:
      LOOP DL2
      DEC  DX
      JNZ  DL
      POP  DX
      POP  CX
      RET
DELAY ENDP


⌨️ 快捷键说明

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