⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nianyueri.asm

📁 按规定格式输入年月日并显示
💻 ASM
字号:
CRLF	MACRO         ;宏定义
	    MOV  AH , 02H
	    MOV  DL , 0DH
	    INT	 21H
	    MOV  AH , 02H
	    MOV  DL , 0AH
	    INT  21H
 ENDM
DATA  SEGMENT
MESS  DB	'WHAT IS THE DATE ( MM / DD /YY)?' , 0DH , 0AH , '$'
ERROR	DB	'INPUT ERROR !', 0DH , 0AH , '$'
DATA  ENDS
STACK	SEGMENT
STA 	DW	 32 DUP (?)
TOP	 DW	?
STACK	ENDS
CODE	SEGMENT
ASSUME  CS: CODE, DS:DATA, ES:DATA, SS:STACK
START:	MOV	AX, DATA
	    MOV	DS, AX
	    MOV	ES, AX
	    MOV	SP,TOP	          ;初始化
	    MOV	AH, 09H
	    MOV	DX, OFFSET  MESS
	    INT	21H	                 ; 显示提示信息
	    MOV  AH, 02H
	    MOV  DL, 07H
	    INT	  21H	           ;响铃一次
	    CALL	GETNUM
	    PUSH	DX
	    CALL	GETNUM
	    PUSH	DX
	    CALL	GETNUM     ;接收键入的月、日及年值
	    MOV	AX , DX
	    CALL	DISP	     ;显示年值
	    MOV	AH, 02H
	    MOV	DL , '-'
	    INT	    21H	         ;显示'-'
	    POP   DX
	    POP	  AX
	    CALL  DISPP	     ;显示月值
	    MOV  AH , 02H
	    MOV	DL , '-'
	    INT	21H	             ;显示'-'
	    MOV	AX , DX
	    CALL	DISPP	     ;显示日值
	    MOV	AX, 4C00H
	    INT	21H	             ;返回DOS
DISPP	PROC	NEAR
	    MOV	BL, AL
	    MOV	DL, Bl
	    MOV	CL, 04
	    ROL	DL, CL
	    AND	DL, 0FH
	    CALL	DISPL
	    MOV	DL, BL
	    AND	DL, 0FH
	    CALL	DISPL
	    RET
DISPP	ENDP
DISPL	PROC  NEAR
	    ADD   DL, 30H
	    CMP	DL, 3AH
	    JB	DDD
	    ADD  DL, 27H
DDD:   MOV  AH, 02H
	    INT	 21H
	    RET
DISPL	ENDP
DISP	PROC	NEAR
	    PUSH	BX
	    PUSH	CX
	    PUSH	DX
	    PUSH	AX
	    MOV	AL , AH
	    CALL	DISPP
	    POP	 AX
	    CALL	DISPP
	    POP 	DX
	    POP	    CX
	    POP	    BX
	    RET
DISP   ENDP
GETNUM  PROC  NEAR
	    PUSH	CX
	    XOR	DX, DX
GGG:	MOV	AH, 01H
	INT	   21H
	    CMP	AL, 0DH
	    JZ	PPP
	    CMP	AL, 20H
	    JZ	PPP
	    SUB  AL, 30H
	    JB	KKK
	    CMP   0AH
	    JB	GETS
	    CMP  AL, 11H
	    JB	KKK
	    SUB  AL, 07H
	    CMP  AL, 0FH
	    JBE	GETS
	    JB	KKK
	    CMP  AL, 2FH
	    JA	KKK
	    SUB  AL, 20H
GETS:	MOV  CL, 04
	    SHL  DX, CL
	    XOR  AH, AH
	    ADD	 DX, AX
	    JMP  GGG
KKK:	MOV  AH, 09H
	    MOV  DX, OFFSET ERROR
	    INT	   21H
PPP:	   PUSH	DX
	   CRLF                 ;宏调用
	   POP	DX
	   POP	CX
	   RET
GETNUM	ENDP
CODE	    ENDS
END  START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -