MOV BH,01001110B ;红色背景 黄色前景 MOV BH,000100000B ;绿色背景 黑色前景 MOV CH,1 ;从左上第1行 MOV CL,26 ;从左上第26列 MOV DH,1 ;从右上第1行 MOV DL,54 ;从右上第54列
INT 10H ;置主游戏屏界面颜色 DIS3
DIS3 RET PAINT ENDP ;表示击中的函数
BELL PROC NEAR PUSH DX PUSH AX PUSH CX
MOV DX,60000D ;turn on/of 60000d times IN AL,61H
AND AL,11111100B ;置 最后2位 为0 SOUND: XOR AL,2 ; 0 1 交替 变化 发出 声音 OUT 61H,AL MOV CX,9FH ;value of wait WAIT1:
LOOP WAIT1 DEC DX
JNE SOUND POP CX POP AX POP DX
RET BELL ENDP ;打印实际得分
POINT PROC NEAR DIS2
MOV AH,2 MOV BH,0 MOV DH,11 MOV DL,67
INT 10H ;置光标位置 计分的 位置 MOV AL,M CMP AL,30 ;击中30次显示 jnz T
; DIS1 ST9 20,60 ;显示“VERY GOOD” T: CMP AL,10 JAE X9 ADD AL,30H MOV DL,AL
MOV AH,02H ;显示得分 一位 INT 21H JMP X10 X9: MOV AL,M MOV AH,0
MOV DL,10 DIV DL
PUSH AX MOV AH,2 MOV BH,0 MOV DH,11 MOV DL,67
INT 10H ;打印十位 ADD AL,'0' MOV DL,AL
INT 21H POP AX
MOV AL,AH MOV AH,2 MOV DH,11 MOV DL,68
INT 10H ADD AL,'0' MOV DL,AL
INT 21H X10: DIS3 RET POINT ENDP ;暂停函数
PAUSE PROC NEAR DIS2
P1: MOV AH,07H
INT 21H ;无显示输入 已暂停CMP AL,20H ;判断是否是继续 空格 JNE P1 ;不是则跳转
输入空格继续游戏 DIS3 RET PAUSE ENDP ;退出函数
EXIT PROC NEAR DIS2
CALL CLEAR ;调用清屏函数 DIS5 25,00001110B DIS1 ST6,12,30 DIS1 ST10,24,1 MOV AH,4CH
INT 21H ;返回DOS 界面 DIS3 RET EXIT ENDP ;取随机数
RANDOM PROC NEAR PUSH CX PUSH DX
MOV AH,2CH
INT 21H ;取系统时间 DH:秒 DL: ADD DH,DL MOV AL,DH MOV AH,0
MOV DL,26 ;26个字母 故模26
DIV DL ;AX / DL 余数在 AH POP DX POP CX
RET RANDOM ENDP CODES ENDS ENDSTART
1/100秒
相关推荐: