📄 shiyan2.asm
字号:
DATA SEGMENT
MSG DB 'Please input the month(1~12):',0DH,0AH,'$'
MSG1 DB 0DH,0AH,'JAN','$'
MSG2 DB 0DH,0AH,'FEB','$'
MSG3 DB 0DH,0AH,'MAR','$'
MSG4 DB 0DH,0AH,'APR','$'
MSG5 DB 0DH,0AH,'MAY','$'
MSG6 DB 0DH,0AH,'JUN','$'
MSG7 DB 0DH,0AH,'JUL','$'
MSG8 DB 0DH,0AH,'AUG','$'
MSG9 DB 0DH,0AH,'SEP','$'
MSG10 DB 0DH,0AH,'OCT','$'
MSG11 DB 0DH,0AH,'NOV','$'
MSG12 DB 0DH,0AH,'DEC','$'
TABLE DW DISP1,DISP2,DISP3,DISP4,DISP5,DISP6,DISP7,DISP8,DISP9,DISP10,DISP11,DISP12
OUTPUT DB '---is the month your enter ',13,10,'$'
MONTH DB 12,0,10 DUP(?)
ERROR DB 13,10,'You enter the wrong number!','$'
DATA ENDS
PROGNAM SEGMENT
MAIN PROC FAR
ASSUME CS:PROGNAM,DS:DATA
START:
PUSH DS
SUB AX,AX
PUSH AX
MOV AX, DATA
MOV DS,AX
MOV DX,OFFSET MSG
MOV AH,09H
INT 21H
LEA DX,MONTH
MOV AH,0AH ;等待按键
INT 21H
SUB SI,SI
LEA SI,MONTH+2
MOV AL,[SI]
CMP AL,'1' ;
JB START1
CMP AL,'9' ;
JA START1
and al,0fh
xor ah,ah
dec ax
shl ax,1
SUB SI,SI
LEA SI,MONTH+1
MOV CL,[SI]
CMP CL,2
JZ SHUANG
MOV BX,AX
JMP TABLE[BX]
SHUANG:
SUB SI,SI
LEA SI,MONTH+2
MOV AL,[SI]
CMP AL,'1' ;
JB START1
CMP AL,'9' ;
JA START1
and al,0fh
xor ah,ah
dec ax
shl ax,1
MOV BX,AX
ADD BX,20
JMP TABLE[BX]
DISP1: MOV DX,OFFSET MSG1 ;处理程序1
JMP START2
DISP2: MOV DX,OFFSET MSG2
JMP START2
DISP3: MOV DX,OFFSET MSG3
JMP START2
DISP4: MOV DX,OFFSET MSG4
JMP START2
DISP5: MOV DX,OFFSET MSG5
JMP START2
DISP6: MOV DX,OFFSET MSG6
JMP START2
DISP7: MOV DX,OFFSET MSG7
JMP START2
DISP8: MOV DX,OFFSET MSG8
JMP START2
DISP9: MOV DX,OFFSET MSG9
JMP START2
DISP10: MOV DX,OFFSET MSG10
JMP START2
DISP11: MOV DX,OFFSET MSG11
JMP START2
DISP12: MOV DX,OFFSET MSG12
JMP START2
START2:
MOV AH,09H
INT 21H
LEA DX,OUTPUT
MOV AH,09H
INT 21H
RET
START1:
LEA DX,ERROR
MOV AH,09H
INT 21H
RET
MAIN ENDP
PROGNAM ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -