📄 汇编俄罗斯.asm
字号:
stack SEGMENT stack
DW 512 DUP (0)
stack ENDS
data SEGMENT
suijibian DB ?
suijibian2 DB ?
buffer1 DB 13,10,'please enter a number: (1-9)$'
buffer2 DB 13,10,'errow,please enter a number again:(1-9)$'
buffer3 DB 'game over!!! $'
buffer33 DB 'Do you want play again? (Y/N)$'
buffer4 DB 'your score:$'
buffer5 DB 'next:$'
Colordi DB 06h
colorbiao DB 02h
jilie DW 300
jihang DW 130
CLass DW 40,250,0000h ,0001h,0002h,0004h,0005h,0006h,0008h,000ah,000bh,000ch
DW 0100h,0102h,0106h,0108h,010ch
DW 0200h,0202h,0204h,0205h,0206h,0208h,020ah,020bh,020ch
DW 0300h,0302h,0304h,0308h,030ch
DW 0400h,0401h,0402h,0404h,0405h,0406h,0408h,040ah,040bh,040ch,0f0fh
tu1 DW 100,380,0000h,0100h,0200h,0001h,0f0fh
tu2 DW 100,380,0000h,0100h,0001h,0101h,0f0fh
tu3 DW 100,380,0000h,00ffh,0001h,0100h,0f0fh
tu4 DW 100,380,0000h,0100h,0200h,0ff00h,0f0fh
tu5 DW 100,380,0000h,0100h,0200h,00ffh,0f0fh
tu6 DW 100,380,0000h,0100h,0101h,00ffh,0f0fh
tu7 DW 100,380,0000h,0001h,0100h,01ffh,0f0fh
table DW tu1,tu2,tu3,tu4,tu5,tu6,tu7
score DB '$',5 DUP(0)
sudu DB ?
tutong DW 10 DUP (0f0fh)
tuprc DW 10 DUP (0f0fh)
hang DW ?
lie DW ?
hang1 DW ?
lie2 DW ?
color DB ?
SIgn DB ?
xiaonum DB 0
xiaosign DB 0
xiaosign2 DB 0
beginxiao DW 0
ENDxiao DW 0
ENDSign DB 0
tuend DB 60 DUP(0)
tupan DB 375 DUP(0),30 DUP(1)
data ENDS
code SEGMENT
ASSUME CS:code,DS:data,SS:stack
main PROC FAR
start:MOV AX,data
MOV DS,AX
MOV ES,AX
prebegin: MOV AH,0
MOV AL,3
INT 10h
MOV AH,9
LEA DX,buffer1
INT 21h
NExtmain0: MOV AH,1
INT 21h
CMP AL,39h
JA NExtmain2
CMP AL,31h
JB NExtmain2
MOV AH,3AH
SUB AH,AL
MOV sudu,AH
JMP NExtmain3
NExtmain2: MOV AH,9
MOV DX,OFFSET buffer2
INT 21h
JMP NExtmain0
NExtmain3: MOV AH,0 ;?????
MOV AL,12h
INT 10h
;???/
MOV CX,299 ;???
back11: MOV DX,130
back10: MOV AH,0ch
MOV AL,Colordi
MOV BH,0
INT 10h
INC DX
CMP DX,380
JNZ back10
INC CX
CMP CX,450
JNZ back11
MOV CX,200 ;???
back111: MOV DX,130
back100: MOV AH,0ch
MOV AL,29h
MOV BH,0
INT 10h
INC DX
CMP DX,380
JNZ back100
INC CX
CMP CX,299
JNZ back111
MOV BX,OFFSET buffer4
MOV DX,091ah
NExtmain4: MOV AL,[BX]
PUSH BX
MOV AH,2
MOV BH,0
INT 10h
MOV AH,9
MOV BH,0
MOV BL,95h
MOV CX,1
INT 10h
INC DL
POP BX
INC BX
CMP BYTE PTR [BX],'$'
JNZ NExtmain4
MOV BX,OFFSET buffer5
MOV DX,0c1ch
NExtmain5: MOV AL,[BX]
PUSH BX
MOV AH,2
MOV BH,0
INT 10h
MOV AH,9
MOV BH,0
MOV BL,95h
MOV CX,1
INT 10h
INC DL
POP BX
INC BX
CMP BYTE PTR [BX],'$'
JNZ NExtmain5
MOV Color,0dh
MOV BX,OFFSET CLass
ADD BX,4
NExtdayinm: MOV AL,[BX+1]
MOV DL,10
IMUL DL
ADD AX,[CLass]
MOV hang,AX
MOV AL,[BX]
MOV DL,10
IMUL DL
ADD AX,[CLass+2]
MOV lie,AX
CALL dayin1
ADD BX,2
CMP BYTE PTR [BX],0fh
JNZ nextdayinm
CALL INCscore
CALL suiji ;?????????
MOV AL,suijibian
MOV BL,2
MUL BL
MOV BX,AX
MOV SI,[BX+table]
LEA DI,tuprc
MOV CX,14
CLD
REP MOVSb
begin:
MOV SIgn,0
MOV SI,OFFSET tuprc
LEA DI,tutong
MOV CX,14
CLD
REP MOVSb
MOV color,29h
CALL dayinprc
CALL suiji ;?????????
MOV AL,suijibian
MOV BL,2
MUL BL
MOV BX,AX
MOV SI,[BX+table]
LEA DI,tuprc
MOV CX,14
CLD
REP MOVSb
MOV color,0dh
CALL dayinprc
MOV CX,30
continue:
CALL panxia
CMP SIgn,0
JZ NExtm
MOV SIgn,0
CALL cunchu
CALL ENDMain
CMP ENDSign,0
JNZ NExtmain
CALL xiaohang
JMP begin
NExtm: MOV AL,colordi
MOV Color,AL
CALL dayin
ADD tutong,10
MOV AL,colorbiao
MOV Color,AL
CALL dayin
CALL WAITe
LOOP continue
JMP begin
NExtmain:
MOV AH,0
MOV AL,3
INT 10H
MOV AH,2
MOV BH,0
MOV DH,09h
MOV DL,22h
INT 10h
MOV AH,9
LEA DX,buffer3
INT 21h
MOV AH,2
MOV BH,0
MOV DH,0bh
MOV DL,19h
INT 10h
MOV AH,9
LEA DX,buffer33
INT 21h
MOV AH,1
INT 21h
CMP AL,89
JZ NExtgame
CMP AL,121
JZ NExtgame
MOV AH,4ch
INT 21h
NExtgame: LEA BX,score
MOV BYTE PTR [BX],'$'
INC BX
LEA DX,tupan
ADD DX,375
CLear: MOV BYTE PTR [BX],0
INC BX
CMP BX,DX
JNZ CLear
JMP prebegin
main ENDP
dayIN PROC NEAR
PUSH AX
PUSH BX
PUSH DX
MOV BX,OFFSET tutong
ADD BX,4
NExtdayin: MOV AL,[BX+1]
MOV DL,10
IMUL DL
ADD AX,[tutong]
CMP AX,jihang
JB NExtdain1
MOV hang,AX
MOV AL,[BX]
MOV DL,10
IMUL DL
ADD AX,[tutong+2]
MOV lie,AX
CALL dayin1
NExtdain1: ADD BX,2
CMP BYTE PTR [BX],0fh
JNZ nextdayin
POP DX
POP BX
POP AX
RET
dayin ENDP
dayINprc PROC NEAR
PUSH AX
PUSH BX
PUSH DX
MOV BX,OFFSET tuprc
ADD BX,4
NExtdayinprc: MOV AL,[BX+1]
MOV DL,10
IMUL DL
ADD AX,[tuprc]
ADD AX,120
MOV hang,AX
MOV AL,[BX]
MOV DL,10
IMUL DL
ADD AX,[tuprc+2]
SUB AX,140
MOV lie,AX
CALL dayin1
ADD BX,2
CMP BYTE PTR [BX],0fh
JNZ nextdayinprc
POP DX
POP BX
POP AX
RET
dayinprc ENDP
dayin1 PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV CX,0
back1: MOV DX,0
back: MOV AH,0ch
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -