📄 程序.txt
字号:
DSEG SEGMENT
INFO1 DB 0DH,0AH,’please choose the letter y,s,z:’
DB 0DH,0AH,’input q to quit’,’$’
INFO2 DB 0DH,0AH,’choose error!’,’$’
D3 DW 0
TOTAL DB 12
DOTYX DB 50,160
DB 60,135
DB 60,185
DB 75,115
DB 75,205
DB 95,110
DB 95,210
DB 110,114
DB 110,210
DB 130,135
DB 130,195
DB 145,165
DSEG ENDS
SSEG SEGMENT STACK
DB 200 DUP(0)
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG
START: MAIN PROC FAR
MOV AX,DSEG
MOV DS,AX
MOV AH,0 ;设置显示模式
MOV AL,4 ;显示模式代号
INT 10H ;10H号中断,显示I/O程序
INPUT:LEA DX,INTO1 ;要输出字符串首地址
MOV AH,9 ;在标准输出上显示一个字符串
INT 21H
MOV AH,08 ;不带回显键盘输入,出口参数al
INT 21H
CMP AL,’S’
JZ SA
CMP AL,’Z’
JZ ZHEN
CMP AL,’Y’
JZ YUA
CMP AL,’q’
JZ EXIT
MOV DX,OFFSET INFO2
MOV AH,09
INT 21H
SA: CALL SAN
JMP INPUT
ZHEN:CALL ZHENG
JMP INPUT
YUA: CALL YUAN
JMP INPUT
EXIT: MOV AH,4CH
INT 21H
RET
MAIN ENDP
SAN PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,0
MOV AL,12H
INT 10H ;显示I/O程序
MOV AL,1
A0: MOV DX,1
MOV D3,1
MOV CX,320
A1: PUSH CX
PUSH D3
A2: MOV AH,12
PUSH AX
INT 10H ;显示I/O程序
POP AX
INC CX
SUB D3,1
JNZ A2
POP D3
ADD D3,2
POP CX
INC DX
DEC CX
JNE A1
INC A1
CMP AL,5
JNE A0
POP DX
POP CX
POP BX
POP AX
RET
SAN NEDP
ZHENG PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,0FH ;取当前显示模式
INT 10H
MOV AH,0
MOV AL,3
INT 10H
MOV CX,1 ; 字符数量
MOV AH,2 ;置光标位置
MOV DH,5 ; 5行开始
MOV DL,25 ;25列开始
INT 10H
;*****光标向下动********
LINE: MOV AH,2
INT 10H
MOV AL,2 ;字符代码
MOV AH,9 ;将字符和属性写到光标位置处
MOV BL,0E0H ; 字符黄色
INT 10H
INC DH ; 行增加
CMP DH,20 ; 20行
JNE LINE
JMP LINE1
;****光标向右动*****
LINE1: MOV AH,2
INT 10H
MOV AL,2
MOV AH,9
MOV BL,0E0H ;字符为黄色
INT 10H
INC DL ;列增加
CMP DL,55 ;55列
JNE LINE1
JMP LINE2
;*****光标向上动*********
LINE2: MOV AH,2
INT 10H
MOV AL,2
MOV AH,9
MOV BL,0E0H ; 字符黄色
INT 10H
DEC DH ;行减少
CMP DH,5 ;5行
JNE LINE2
JMP LINE3
;***光标向左动***
LINE3: MOV AH,2
INT 10H
MOV AL,2
MOV AH,9
MOV BL,0E0H ;字符为黄色
INT 10H
DEC DL ;列减少
CMP DL,25 ;25列
JNE LINE3
L00: MOV AH,7 ;向下滚屏
MOV AL,14 ;下滚行数
MOV BH,20H ;绿色,填空白行的属性
MOV CH,6 ;窗口左上角行号
MOV CL,26 ;窗口左上角列号
MOV DH,19 ;窗口右下角行号
MOV DL,54 ;窗口右下角列号
INT 10H
;*****时间控制*****
L01: MOV AH,0
INT 1AH ;时钟管理
CMP DL,10
JNZ L01
L1: MOV AH,6 ;向上滚屏
MOV AL,14
MOV BH,0F0H; ;白色
MOV CH,6
MOV CL,26
MOV DH,19
MOV DL,54
INT 10H
L2: MOV AH,0
INT 1AH ;时钟管理
CMP DL,15
JNZ L2
L3: MOV AH,7 ;向下滚屏
MOV AL,14
MOV BH,40H ;红色
MOV CH,6
MOV CL,26
MOV DH,19
MOV DL,54
INT 10H
L4: MOV AH,0
INT 1AH
CMP DL,30
JNZ L4
L5: MOV AH,6 ;向上滚屏
MOV AL,14
MOV BH,0D0H ; 品红
MOV CH,6
MOV CL,26
MOV DH,19
MOV DL,54
INT 10H
L004: MOV AH,0
INT 1AH ;时钟管理
CMP DL,10
JNZ L004
L005: MOV AH,7 ;向下滚屏
MOV AL,14
MOV BH,30H ; 青
MOV CH,6
MOV CL,26
MOV DH,19
MOV DL,54
INT 10H
;****时间控制****
MOV AH,2 ;置光标位置
MOV DH,23 ;行号
MOV DL,0 ;列号
INT 10H
POP DX
POP CX
POP BX
POP AX
RET
ZHENG EDNP
YUAN PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AX,0004H
INT 10H
MOV BX,00
PUSH BX
MOV AH,0BH
INT 10H
MOV BX,0003H
MOV AH,0BH
INT 10H
MOV BL,TOTAL
MOV SI,OFFSET DOTYX
MOV CH,0
MOV DH,CH
PLO: MOV DL,[SI]
MOV CL,[SI+1]
MOV AL,02H
MOV AH,0CH
INT 10H
INC SI
INC SI
DEC BL
JNZ PLO
MOV BX,50
POP BX
POP DX
POP CX
POP DX
POP AX
RET
YUAN ENDP
CSEG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -