📄 wu.asm
字号:
DEC DI
CMP DI,1
JNZ DRAW11
CD1:
CMP CHOOSE1,1
JZ COLORC
MOV COLOR,0AH
JMP DRAW111
COLORC:
MOV COLOR,0EH
DRAW111:
MOV SI,WORD PTR TOP1
AND SI,00FFH
MOV AX,10
SUB AL,STACK1[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
POP DX
POP BX
ADD AX,40
MOV CX,AX
MOV COUNT,28
L11:
PUSH CX
LINE11:
MOV AH,0CH
MOV AL,COLOR
INT 10H
INC CX
MOV AX,10
SUB AL,STACK1[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
MOV BX,200
XCHG AX,BX
SUB AX,BX
POP DX
POP BX
CMP CX,AX
JB LINE11
POP CX
DEC DX
DEC COUNT
CMP COUNT,0
JNZ L11
RET
DRAW1 ENDP
DRAW2 PROC NEAR
MOV DI,WORD PTR TOP2
AND DI,00FFH
MOV SI,0
CMP TOP2,1
JZ CD2
DRAW22:
INC SI
MOV AX,10
SUB AL,STACK2[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
POP DX
POP BX
ADD AX,240
MOV CX,AX
MOV COUNT,28
L2:
PUSH CX
LINE2:
MOV AX,0C0AH
INT 10H
INC CX
MOV AX,10
SUB AL,STACK2[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
MOV BX,400
XCHG AX,BX
SUB AX,BX
POP DX
POP BX
CMP CX,AX
JB LINE2
POP CX
DEC DX
DEC COUNT
CMP COUNT,0
JNZ L2
DEC DI
CMP DI,1
JNZ DRAW22
CD2:
CMP CHOOSE1,2
JZ COLORC2
MOV COLOR,0AH
JMP DRAW222
COLORC2:
MOV COLOR,0EH
DRAW222:
MOV SI,WORD PTR TOP2
AND SI,00FFH
MOV AX,10
SUB AL,STACK2[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
POP DX
POP BX
ADD AX,240
MOV CX,AX
MOV COUNT,28
L22:
PUSH CX
LINE22:
MOV AH,0CH
MOV AL,COLOR
INT 10H
INC CX
MOV AX,10
SUB AL,STACK2[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
MOV BX,400
XCHG AX,BX
SUB AX,BX
POP DX
POP BX
CMP CX,AX
JB LINE22
POP CX
DEC DX
DEC COUNT
CMP COUNT,0
JNZ L22
RET
DRAW2 ENDP
DRAW3 PROC NEAR
MOV DI,WORD PTR TOP3
AND DI,00FFH
MOV SI,0
CMP TOP3,1
JZ CD3
DRAW33:
INC SI
MOV AX,10
SUB AL,STACK3[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
POP DX
POP BX
ADD AX,440
MOV CX,AX
MOV COUNT,28
L3:
PUSH CX
LINE3:
MOV AX,0C0AH
INT 10H
INC CX
MOV AX,10
SUB AL,STACK3[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
MOV BX,600
XCHG AX,BX
SUB AX,BX
POP DX
POP BX
CMP CX,AX
JB LINE3
POP CX
DEC DX
DEC COUNT
CMP COUNT,0
JNZ L3
DEC DI
CMP DI,1
JNZ DRAW33
CD3:
CMP CHOOSE1,3
JZ COLORC3
MOV COLOR,0AH
JMP DRAW333
COLORC3:
MOV COLOR,0EH
DRAW333:
MOV SI,WORD PTR TOP3
AND SI,00FFH
MOV AX,10
SUB AL,STACK3[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
POP DX
POP BX
ADD AX,440
MOV CX,AX
MOV COUNT,28
L33:
PUSH CX
LINE33:
MOV AH,0CH
MOV AL,COLOR
INT 10H
INC CX
MOV AX,10
SUB AL,STACK3[SI]
PUSH BX
PUSH DX
MOV BX,5
MUL BX
MOV BX,600
XCHG AX,BX
SUB AX,BX
POP DX
POP BX
CMP CX,AX
JB LINE33
POP CX
DEC DX
DEC COUNT
CMP COUNT,0
JNZ L33
RET
DRAW3 ENDP
HANIO1 PROC NEAR
CMP LEVEL,1
JZ PP13
MOV AX,WORD PTR ONE
MOV BX,WORD PTR TWO
MOV CX,WORD PTR THREE
MOV DX,WORD PTR LEVEL
PUSH AX
PUSH BX
PUSH CX
PUSH DX
DEC LEVEL
MOV TWO,CL
MOV THREE,BL
CALL HANIO1
POP DX
POP CX
POP BX
POP AX
MOV LEVEL,DL
MOV THREE,CL
MOV TWO,BL
MOV ONE,AL
PP13:
;MOV DL,ONE
;MOV AH,02H
;INT 21H
;MOV DL,THREE
;MOV AH,02H
;INT 21H
;MOV DL,0AH
;MOV AH,02H
;INT 21H
;MOV DL,0DH
;MOV AH,02H
;INT 21H
INC STEP2
CMP LEVEL,1
JZ END11
MOV AX,WORD PTR ONE
MOV BX,WORD PTR TWO
MOV CX,WORD PTR THREE
MOV DX,WORD PTR LEVEL
PUSH AX
PUSH BX
PUSH CX
PUSH DX
DEC LEVEL
MOV TWO,AL
MOV ONE,BL
CALL HANIO1
POP DX
POP CX
POP BX
POP AX
MOV LEVEL,DL
MOV THREE,CL
MOV TWO,BL
MOV ONE,AL
END11:
RET
HANIO1 ENDP
HANIO PROC NEAR
CMP LEVEL,1
JZ P13
MOV AX,WORD PTR ONE
MOV BX,WORD PTR TWO
MOV CX,WORD PTR THREE
MOV DX,WORD PTR LEVEL
PUSH AX
PUSH BX
PUSH CX
PUSH DX
DEC LEVEL
MOV TWO,CL
MOV THREE,BL
CALL HANIO
POP DX
POP CX
POP BX
POP AX
MOV LEVEL,DL
MOV THREE,CL
MOV TWO,BL
MOV ONE,AL
P13:
;MOV DL,ONE
;MOV AH,02H
;INT 21H
;MOV DL,THREE
;MOV AH,02H
;INT 21H
;MOV DL,0AH
;MOV AH,02H
;INT 21H
;MOV DL,0DH
;MOV AH,02H
;INT 21H
CALL DISPL2
INC STEP2
CMP LEVEL,1
JZ END3
MOV AX,WORD PTR ONE
MOV BX,WORD PTR TWO
MOV CX,WORD PTR THREE
MOV DX,WORD PTR LEVEL
PUSH AX
PUSH BX
PUSH CX
PUSH DX
DEC LEVEL
MOV TWO,AL
MOV ONE,BL
CALL HANIO
POP DX
POP CX
POP BX
POP AX
MOV LEVEL,DL
MOV THREE,CL
MOV TWO,BL
MOV ONE,AL
END3:
RET
HANIO ENDP
DISPL2 PROC NEAR
CMP ONE,'A'
JZ FF1
CMP ONE,'B'
JZ FF2
MOV CHOOSE1,3
JMP TTO
FF1:
MOV CHOOSE1,1
JMP TTO
FF2:
MOV CHOOSE1,2
TTO:
CMP THREE,'A'
JZ TT1
CMP THREE,'B'
JZ TT2
MOV CHOOSE2,3
JMP DISPLAY
TT1:
MOV CHOOSE2,1
JMP DISPLAY
TT2:
MOV CHOOSE2,2
DISPLAY:
CALL CLEAR
CALL C10DISPL1
CMP PRESS,1
JZ TWO2
MOV AH,01H
INT 21H
TWO2:
CMP ONE,'A'
JZ FFF1
CMP ONE,'B'
JZ FFF2
MOV CHOOSE1,2
MOV SI,WORD PTR TOP3
AND SI,00FFH
MOV DL,STACK3[SI]
MOV XUAN,DL
DEC TOP3
JMP TTTO
FFF1:
MOV CHOOSE1,2
MOV SI,WORD PTR TOP1
AND SI,00FFH
MOV DL,STACK1[SI]
MOV XUAN,DL
DEC TOP1
JMP TTTO
FFF2:
MOV CHOOSE1,2
MOV SI,WORD PTR TOP2
AND SI,00FFH
MOV DL,STACK2[SI]
MOV XUAN,DL
DEC TOP2
TTTO:
CMP THREE,'A'
JZ TTT1
CMP THREE,'B'
JZ TTT2
MOV CHOOSE2,3
INC TOP3
MOV SI,WORD PTR TOP3
AND SI,00FFH
MOV DL,XUAN
MOV STACK3[SI],DL
JMP EXIT1
TTT1:
MOV CHOOSE2,1
INC TOP1
MOV SI,WORD PTR TOP1
AND SI,00FFH
MOV DL,XUAN
MOV STACK1[SI],DL
JMP EXIT1
TTT2:
MOV CHOOSE2,2
INC TOP2
MOV SI,WORD PTR TOP2
AND SI,00FFH
MOV DL,XUAN
MOV STACK2[SI],DL
EXIT1:
RET
DISPL2 ENDP
KEYGAME PROC NEAR
PUSH AX
PUSH BX
PUSH DX
PUSH SI
MOV DX,OFFSET S3
MOV AH,09H
INT 21H
XOR DX,DX
INLV:
MOV AH,01H
INT 21H
CMP AL,0DH
JZ CLV
SUB AX,30H
XCHG AX,DX
MOV BL,10
MUL BL
CMP AX,10
JA ERROR
ADD DX,AX
JMP INLV
ERROR:
MOV DX,OFFSET S2
MOV AH,09H
INT 21H
XOR DX,DX
JMP INLV
CLV:
CMP DX,0
JZ ERROR
MOV LEVEL,DL
MOV ONE,'A'
MOV TWO,'B'
MOV THREE,'C'
KEY:
MOV SI,1
MOV AL,LEVEL
MOV DL,AL
INC DX
XOR DH,DH
INIT2:
MOV STACK1[SI],AL
DEC AL
INC SI
CMP SI,DX
JNE INIT2
MOV AL,LEVEL
MOV TOP1,AL
MOV TOP2,0
MOV TOP3,0
MOV CHOOSE1,1
MOV CHOOSE2,1
MOV STEP1,0
MOV PRESS,0
MOV AH,0FH
INT 10H
PUSH AX
CALL B10MODE
CALL HANIO
CALL CLEAR
CALL C10DISPL1
MOV AH,01H
INT 21H
POP AX
MOV AH,00H
INT 10H
POP SI
POP DX
POP BX
POP AX
RET
KEYGAME ENDP
CODE ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -