📄 用汇编写扫雷游戏(伸精) - 软件开发技术 - ★●黑基论坛●★ - 全国最大的黑客与安全技术论坛 - hackbase_com.mht
字号:
;=BC=D3=D4=D8=D3=CE=CF=B7=A3=AC=B8=DF=BC=B6<BR> =
MOV=20
GMY,20D<BR> MOV =
GM_LEI,99D<BR> =20
CALL LOAD_GAME =20
<BR>POS4: <BR> =
=20
CMP DX,80D<BR> JLE =
POS1<BR> =20
CMP DX,88D<BR> =
JAE=20
POS1<BR>EXIT: =20
=
;=CD=CB=B3=F6=D3=CE=CF=B7<BR> MOV=20
AX,02h<BR> INT 33H =
;=D2=FE=B2=D8=CA=F3=B1=EA=D6=B8=D5=EB<BR> MOV DX, WORD=20
PTR OLDADDR<BR> MOV ES, WORD PTR OLDADDR + =
2<BR> =20
MOV CX,0CH<BR> MOV AX,0CH<BR> =
INT 33h=20
=
;=BB=D6=B8=B4=D4=AD=CA=F3=B1=EA=D2=C6=B6=AF=B5=C4=D6=D0=B6=CF=B7=FE=CE=F1=
=B3=CC=D0=F2 <BR> CALL CLSSCR<BR>EEND:<BR> =20
MOV AH,4CH<BR> INT =
21H <BR> =20
<BR>CLSSCR PROC =
;=C7=E5=B3=FD=C0=D7=C7=F8=C6=C1=C4=BB=20
<BR> PUSH CX<BR> PUSH =
DX<BR> MOV=20
AX,0600h<BR> MOV BH,9FH<BR> MOV=20
CX,0<BR> MOV DX,1819H<BR> INT=20
10H<BR> POP DX<BR> POP=20
CX<BR> RET<BR>CLSSCR=20
=
ENDP<BR>;=CF=D4=CA=BE=CA=F3=B1=EA=D6=B8=D5=EB=A3=AC=B8=C3=D7=D3=B3=CC=D0=F2=
=D4=DA=B1=BE=B3=CC=D0=F2=B1=BB=C9=E8=D6=C3=CE=AA=CA=F3=B1=EA=D2=C6=B6=AF=CA=
=C2<BR>;=BC=FE=B5=C4=D6=D0=B6=CF=B4=A6=C0=ED=B3=CC=D0=F2=A3=AC=CB=F9=D2=D4=
=A3=AC=D6=BB=D2=AA=CA=F3=B1=EA=D2=BB=D2=C6=B6=AF=A3=AC=B8=C3=D7=D3=B3=CC=D0=
=F2=C2=ED=C9=CF=BE=CD=B1=BB=D6=B4=D0=D0=A1=A3=20
=
<BR>;=B1=BE=C8=CB=B1=C8=BD=CF=B1=BF33H=D6=D0=B6=CF=CA=F3=B1=EA=D6=B8=D5=EB=
=CF=D4=CA=BE=B2=BB=B3=F6=C0=B4=A3=AC=D6=BB=BA=C3=D7=D4=BC=BA=B8=E3=C1=CB=D5=
=E2=C3=B4=C0=C3=D2=BB=B8=F6<BR>DISPPOS PROC FAR<BR> =20
CMP CX,0<BR> JLE =
DIS4<BR> CMP CX,320D<BR> =
=20
JAE DIS4<BR> PUSH =
CX<BR> =20
PUSH DX =
<BR> =20
MOV CX,WORD PTR LEIQU<BR> =
=20
MOV DX,WORD PTR LEIQU+2<BR> =
MOV=20
AL,BYTE PTR LEIQU+4<BR> OR =
CX,CX<BR> =20
JZ DIS3 <BR> =
=20
MOV AH,0CH<BR> INT =
10H<BR>DIS3: =20
<BR> POP =
DX<BR> =20
POP CX<BR> PUSH=20
CX<BR> PUSH DX<BR> =
=20
MOV AH,0DH<BR> INT =
10H<BR> =20
MOV WORD PTR LEIQU,CX<BR> =
=20
MOV WORD PTR LEIQU+2,DX<BR> =
MOV BYTE=20
PTR LEIQU+4,AL<BR> MOV =
AL,0FH<BR> =20
MOV AH,0CH<BR> =
INT=20
10H<BR> POP DX<BR> =
=20
POP CX <BR>DIS4: =
=20
<BR> =
=20
RET<BR>DISPPOS =
ENDP<BR><BR>;=BB=AD=D2=BB=B8=F6=D0=A1=B7=BD=B8=F1,=C8=EB=BF=DA=B2=CE=CA=FD=
=A3=ACCX=3D=CF=F1=CB=D8=C1=D0=A3=ACDX=3D=CF=F1=CB=D8=D0=D0<BR>DRSQU=20
PROC FAR<BR> PUSH BX<BR> =20
PUSH DX<BR> =
PUSH=20
CX<BR> XOR BX,BX <BR>DRSQU1: =
<BR> MOV=20
AL,07H<BR>DRSQU2:<BR> MOV =
AH,0CH<BR> =20
INT 10H<BR> =
INC=20
CX<BR> INC BL<BR> =
=20
CMP BL,7D<BR> JL =
DRSQU2<BR> =20
MOV AL,0F0H<BR> =
CMP=20
BL,7D<BR> JE DRSQU2<BR> =
=20
CMP BH,7D<BR> JE =
DRSQU4<BR> =20
POP CX<BR> =
PUSH=20
CX<BR> XOR BL,BL<BR> =
=20
INC DX<BR> INC BH<BR> =
CMP BH,7D<BR> =
JL=20
DRSQU1<BR> MOV AL,0F0H<BR> =20
JMP DRSQU2<BR>DRSQU4: =
=
=20
<BR> POP =
CX<BR> =20
POP DX<BR> POP =
BX<BR> RET<BR>DRSQU=20
=
ENDP<BR>;=BC=D3=D4=D8=D3=CE=CF=B7,=C8=EB=BF=DA=B2=CE=CA=FDGMX=3D=CE=C4=B1=
=BE=C1=D0,GMY=3D=CE=C4=B1=BE=D0=D0,GM_NUM=3D=C0=D7=CA=FD<BR>LOAD_GAME =
PROC=20
FAR<BR> PUSH BX =20
<BR> PUSH =
CX<BR> =20
PUSH DX<BR>;=C2=F1=B5=D8=C0=D7 =20
=
<BR>;=CB=E6=BB=FA=CA=FD=B2=FA=C9=FA=B9=AB=CA=BD=A3=BAra=
nd_num=3D ( =D6=D6=D7=D3*X + Y ) mod=20
=
Z<BR>;=D6=D6=D7=D3=C8=A1=CF=B5=CD=B3=CA=B1=BC=E4=D3=EB=CB=F9=B5=C4=CB=E6=BB=
=FA=CA=FD=B5=C4=BA=CD<BR> MOV AL,BYTE PTR=20
GMX <BR> MOV BL,BYTE PTR =
GMY<BR> =20
MOV AH,0 <BR> =
=20
MUL BL =20
<BR> MOV BX,AX =
=20
;BX=B7=BD=B8=F1=D7=DC=CA=FD =
<BR> =20
MOV CL,GM_LEI =20
=
;CL=B4=E6=C0=D7=CA=FD<BR>;=C7=E5=B3=FD=B5=D8=C0=D7=CA=FD=
=BE=DD <BR> =20
XOR SI,SI =
<BR>PUT1: =20
<BR> MOV [SI],0<BR> =20
INC SI<BR> CMP=20
SI,BX<BR> JL=20
=
PUT1<BR>;=D2=D4=CB=E6=BB=FA=CA=FD=D7=F7=CE=AA=B5=D8=D6=B7=C6=AB=D2=C6=C1=BF=
=B7=C5=C8=EB=B5=D8=C0=D7=A3=AC=D3=C3*=B1=ED=CA=BE =
=20
<BR>GET1: =20
<BR> =
=20
PUSH CX<BR>GET2: MOV =
AH,2CH<BR> =20
INT 21H <BR> =
=20
OR DX,DX<BR> JZ GET2 =20
<BR> MOV AX,WORD =
PTR=20
[BX]<BR> ADD DX,AX<BR> =
=20
MOV AX,DX =20
;DX=D6=D6=D7=D3<BR> MOV =
CX,29D<BR> =20
XOR DX,DX<BR> =
MUL=20
CX<BR> ADD AX,11D<BR> =
=20
OR AX,AX<BR> JZ =
GET2<BR> =20
XOR DX,DX<BR> =
DIV=20
BX =20
=
;DX=B4=E6=D3=E0=CA=FD=3D0-=D7=DC=B7=BD=B8=F1=CA=FD=B5=C4=CB=E6=BB=FA=
=CA=FD <BR> =20
PUSH BX<BR> MOV=20
BX,DX<BR> MOV AL, BYTE PTR =
[BX]<BR> =20
CMP AL,'*' =
=20
=
;=D6=D8=B8=B4=BE=CD=D6=D8=C8=A1<BR> POP =
BX =20
<BR> JE GET2<BR> =
=20
PUSH BX<BR> MOV BX,DX =
=20
<BR> MOV BYTE PTR=20
[BX],'*' ;=D0=B4=C8=EB=B5=D8=C0=D7<BR> =
POP=20
BX<BR> POP CX<BR> =
=20
MOV WORD PTR [BX],DX<BR> DEC=20
CL <BR> OR =
CL,CL<BR> =20
JNZ GET1 =20
<BR>;=BB=AD=C0=D7=C7=F8 =
<BR> =20
MOV AX,WORD PTR GMX<BR> =
=20
MOV BX,8D<BR> MUL =
BX<BR> =20
MOV CX,AX<BR> =
MOV=20
AX,WORD PTR GMY<BR> MUL =
BX<BR> =20
MOV DX,AX<BR> =
ADD=20
CX,8D<BR> ADD DX,24D<BR> =
=20
MOV WORD PTR GMX,CX<BR> MOV =
WORD PTR=20
GMY,DX <BR> =
MOV=20
DX,24D<BR>RW2: <BR> MOV=20
CX,8D<BR>RW1:<BR> CALL =
DRSQU<BR> =20
ADD CX,8D<BR> =
CMP=20
CX,WORD PTR GMX<BR> JL =
RW1<BR> =20
ADD DX,8D<BR> =
CMP=20
DX,WORD PTR GMY<BR> JL RW2 =
=20
<BR>;=CF=D4=CA=BE=D3=CE=CF=B7=D0=C5=CF=A2 =
<BR> =20
MOV AL,GM_LEI<BR> MOV=20
CL,10D<BR> MOV AH,0<BR> =
=20
DIV CL<BR> ADD =
AH,'0'<BR> =20
ADD AL,'0'<BR> =
MOV BYTE=20
PTR MSGA+2,AL<BR> MOV BYTE PTR=20
MSGA+3,AH<BR> MOV BYTE PTR=20
MSGA+6,02H<BR> CALL =
GM_INFO<BR> =20
MOV BOOLEAN,01H <BR> =
POP=20
DX<BR> POP CX<BR> =
=20
POP BX <BR> =
=20
RET<BR>LOAD_GAME ENDP <BR>GM_INFO PROC<BR> =
=20
MOV DX,0107H<BR> MOV =
CX,7D<BR> =20
MOV AX,DS<BR> =
MOV=20
ES,AX<BR> LEA BP,MSGA<BR> =20
XOR BX,BX<BR> =
MOV=20
AL,1<BR> MOV BL,06H<BR> =
=20
MOV AH,13H<BR> INT =
10H<BR> =20
RET <BR>GM_INFO ENDP =20
=
<BR>;=C9=A8=C0=D7=A3=AC=C8=EB=BF=DA=A3=ACCX=3D=CF=F1=CB=D8=C1=D0,DX=
=3D=CF=F1=CB=D8=D0=D0=A3=AC<BR>WALEI PROC FAR<BR> =20
PUSH DX<BR> PUSH =
CX<BR> MOV BL,8D<BR> =
=20
MOV AX,GMX<BR> DIV =
BL<BR> =20
DEC AL<BR> MOV=20
WALEIX,AL =
;=C0=D7=C7=F8=B5=C4=C1=D0=CA=FD=B7=C5=B5=BDWALEIX<BR> =
MOV AX,GMY<BR> DIV =
BL<BR> =20
SUB AL,3<BR> MOV =
WALEIY,AL =
;=C0=D7=C7=F8=B5=C4=D0=D0=CA=FD=B7=C5=B5=BDWALEIY<BR> =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -