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

📄 rjexp9.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    '按顺序输入月,日,年,每输完一样按回车(MM/DD/YY)',0DH,0AH,'$'
MESS1 DB    '月份错误,重新输入',0DH,0AH,'$'
MESS2 DB    '日期错误,重新输入',0DH,0AH,'$'
ERROR DB    '输入错误,重新输入',0DH,0AH,'$'
MARK  DB ?
REG   DW ?
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            ;初始化
HEAD:  MOV  MARK,0      ;清错误标志
	MOV  AH,09H
	MOV  DX,OFFSET MESS
	INT  21H                ;显示提示信息
	MOV  AH,02H
	MOV  DL,07H
	INT  21H                ;响铃1次
	CALL  GETNUM
	CMP  MARK,01H
	JE HEAD
	PUSH  DX
	CALL  GETNUM
	CMP   MARK,01H
	JNE   K1
	POP   DX
	JMP   HEAD
K1:   PUSH  DX
	CALL  GETNUM          ;接收键入的月值,日值及年值
	CMP   MARK,01H
	JNE   K2
	POP   DX
	POP   DX
	JMP   HEAD
K2:   MOV   AX,DX
	CALL  DISP              ;显示年值
	NOP
	MOV   AH,02H
	MOV   DL,'-'             ;显示`-`
  		 INT   21H
	     POP   DX
	     POP   AX
	     PUSH DX
	     MOV   REG,AX
	     AND   AX,00FFH
	     CMP   AX,0012H
	     JBE   W1 
	     MOV   AH,09H
	     LEA   DX,MESS1
	     INT   21H
	     JMP START
W1:     MOV   AX,REG
	    CALL  DISPP
	    MOV   AH,02H
	    MOV   DL,'-'
	    INT   21H
	    POP   AX
	    MOV   REG,AX
	    AND   AX,00FFH
	    CMP   AX,31H
	    JBE   W2
	    MOV   AH,09H
	    LEA   DX,MESS2
	    INT   21H
	    JMP   START
W2:     MOV   AX,REG
	    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
	    CMP   AL,0
	    JB    KKK
	    CMP   AL,0AH
	    JB    GETS
	    JMP   KKK
GETS:   MOV   CL,04
	    SHL   DX,CL
	    XOR   AH,AH
	    ADD   DX,AX
	    JMP   GGG
KKK:    PUSH  AX
	    PUSH  DX
	    MOV   AH,09H
	    MOV   DX,OFFSET ERROR
	    INT   21H
	    MOV   MARK,01H
	    POP		DX
	    POP 	AX
PPP:    PUSH  DX
	    MOV   AH,02H
	    MOV   DX,07H
	    INT   21H
	    CRLF
	    POP   DX
	    POP   CX
	    RET           
GETNUM   ENDP
CODE   ENDS
		END   START

⌨️ 快捷键说明

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