📄 well1.asm
字号:
COMPARE: CMP BH,[SI]
JB CHANGE1
CMP BH,[SI]
JNE NEXTONE0
INC SI
CMP AH,[SI]
JB CHANGE2
CMP AH,[SI]
JNE NEXTONE1
INC SI
CMP AL,[SI]
JB CHANGE3
JMP NEXTONE2
NEXTONE0: INC SI
NEXTONE1:
INC SI
NEXTONE2: ADD SI,14
LOOP COMPARE
JMP WRITE
CHANGE3: DEC SI
CHANGE2:
DEC SI
CHANGE1:
LEA DI,[SI]
SUB DI,10
PUSH SI
PUSH CX
LEA SI,HNAME
MOV CX,10
CON: MOV BL,[DI]
XCHG [SI],BL
MOV [DI],BL
INC DI
INC SI
LOOP CON
POP CX
POP SI
XCHG BH,[SI]
INC SI
XCHG AH,[SI]
INC SI
XCHG AL,[SI]
ADD SI,14
LOOP CHANGE1
WRITE:
POP BX
POP SI
MOV BX,SI ;移动文件读写指针
MOV CX,0
MOV DX,0
MOV AL,00H
MOV AH,42H
INT 21H
MOV CX,160 ;将缓冲区的内容写到文件中去
MOV BX,SI
MOV DX,OFFSET RBUFFER
MOV AH,40H
INT 21H
MOV BX,SI ;关闭文件
MOV AH, 3EH
INT 21H
POPJCQ
RET
COHEROS ENDP
;----------------------------------------------------------
;name:dispheros
;----------------------------------------------------------
DISPHEROS PROC FAR
PUSHJCQ
CLEARSCREENH 13,58,23,77
;CMP AX,1
;JNZ GA2
;MOV DX,OFFSET FILE_1 ;打开文件,读方式
;JMP GA3
;GA2: MOV DX,OFFSET FILE_2
MOV DX,SI
GA3: MOV AL,00H
MOV AH,3DH
INT 21H
MOV CX,10
PUSH AX
CIRCLE:
POP AX
MOV BX,AX
PUSH AX
PUSH CX
MOV CX,16
MOV DX,OFFSET STRBUFFER
MOV AH,3FH
INT 21H
DISP_STRING_TEXT STRBUFFER,HEROROW,58,16,0EH
POP CX
INC HEROROW
LOOP CIRCLE
MOV HEROROW,13
POP AX
MOV AH, 3EH
INT 21H ;guan bi wen jian
POPJCQ
RET
DISPHEROS ENDP
DISP_DX PROC FAR
PUSHJCQ
MOV AH,1
MOV CH,10H
INT 10H
LEA DI,STEP
MOV AX,DX
ADD AL,0
DAA
JNC BAI
ADD AH,1
BAI: ADD AH,0
DAA ;调整成十进制格式
MOV BX,AX
AND BX,000FH
ADD BL,30H
MOV [DI+7],BL
MOV BX,AX
MOV CL,4
SAR BX,CL
AND BX,000FH
ADD BL,30H
MOV [DI+6],BL
MOV BX,AX
MOV BL,BH
AND BX,000FH
ADD BL,30H
MOV [DI+5],BL
POPJCQ
RET
DISP_DX ENDP
;判断拼图是否成功1
B_PANDUAN1 PROC FAR
PUSH SI
PUSH DI
LEA SI,NUMBERS1
LEA DI,N1
CMP DI,[SI]
JNZ Q
ADD SI,2
LEA DI,N2
CMP DI,[SI]
JNZ Q
ADD SI,2
LEA DI,N3
CMP DI,[SI]
JNZ Q
ADD SI,2
LEA DI,N4
CMP DI,[SI]
JNZ Q
ADD SI,2
LEA DI,N5
CMP DI,[SI]
JNZ Q
ADD SI,2
LEA DI,N6
CMP DI,[SI]
JNZ Q
ADD SI,2
LEA DI,N7
CMP DI,[SI]
JNZ Q
ADD SI,2
LEA DI,N8
CMP DI,[SI]
JNZ Q
MOV AL,1
Q: POP DI
POP SI
RET
B_PANDUAN1 ENDP
;判断拼图是否成功1
B_PANDUAN2 PROC FAR
PUSH SI
PUSH DI
LEA SI,NUMBERS2
LEA DI,N1
CMP DI,[SI]
JNZ M
ADD SI,2
LEA DI,N2
CMP DI,[SI]
JNZ M
ADD SI,2
LEA DI,N3
CMP DI,[SI]
JNZ Q2
ADD SI,2
LEA DI,N4
CMP DI,[SI]
JNZ M
ADD SI,2
LEA DI,N5
CMP DI,[SI]
JNZ M
ADD SI,2
LEA DI,N6
CMP DI,[SI]
JNZ Q2
ADD SI,2
LEA DI,N7
CMP DI,[SI]
JNZ Q2
ADD SI,2
LEA DI,N8
CMP DI,[SI]
JNZ Q2
ADD SI,2
LEA DI,N91
CMP DI,[SI]
JNZ Q2
ADD SI,2
LEA DI,N10
CMP DI,[SI]
M: JNZ Q2
ADD SI,2
LEA DI,N11
CMP DI,[SI]
JNZ Q2
ADD SI,2
LEA DI,N12
CMP DI,[SI]
JNZ Q2
ADD SI,2
LEA DI,N13
CMP DI,[SI]
JNZ Q2
ADD SI,2
LEA DI,N14
CMP DI,[SI]
JNZ Q2
ADD SI,2
LEA DI,N15
CMP DI,[SI]
JNZ Q2
MOV AL,1
Q2: POP DI
POP SI
RET
B_PANDUAN2 ENDP
;*****game子程序中调用的
DISPLAY_NUMBER PROC FAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AH,0FH
INT 10H
MOV CH,0
MOV CL,[DI]
INC DI
NEXT_CHAR: ADD DH,[DI+2]
ADD DL,[DI+3]
MOV AH,2
INT 10H
MOV AL,[DI]
MOV BL,[DI+1]
PUSH CX
MOV CX,1
MOV AH,09H
INT 10H
POP CX
ADD DI,4
LOOP NEXT_CHAR
POP DI
POP DX
POP CX
POP BX
POP AX
RET
DISPLAY_NUMBER ENDP
CLEAR_SCREEN PROC FAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,6
MOV AL,0
MOV CH,0
MOV CL,0
MOV DH,24
MOV DL,79
MOV BH,7
INT 10H
POP DX
POP CX
POP BX
POP AX
RET
CLEAR_SCREEN ENDP
READ_8 PROC FAR
PUSH CX
PUSH DX
PUSH AX
MOV DL,AL
MOV AH,0
INT 1AH
MOV AX,DX
AND AX,000FH
MOV DL,8
DIV DL
POP DX
MOV AL,DL
POP DX
POP CX
RET
READ_8 ENDP
READ_15 PROC FAR
PUSH CX
PUSH DX
PUSH AX
MOV DL,AL
MOV AH,0
INT 1AH
MOV AX,DX
AND AX,004FH
MOV DL,15
DIV DL
POP DX
MOV AL,DL
POP DX
POP CX
RET
READ_15 ENDP
CODE3 ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -