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

📄 lgh.asm

📁 次程序是采用汇编语言编写LED时钟显示的应用
💻 ASM
字号:
          .model small
.DATA
SC DB '按格式输入实时时间 HH:MM:SS $'
HH2 DB 1 DUP(?)
HH1 DB 1 DUP(?)
F1 DB 1 DUP(?)
MM2 DB 1 DUP(?)
MM1 DB 1 DUP(?)
F2 DB 1 DUP(?)
SS2 DB 1 DUP(?)
SS1 DB 1 DUP(?)
F4 DB 0DH,'!$'
X DB 0

KEEP21 DB ?
XS DB 'INPUT ERROR!$'
.STACK
.CODE
START: MOV AX,@DATA
	MOV DS,AX

	LEA DX,SC
	MOV AH,09H
	INT 21H
	MOV CX,8
	MOV SI,0
AGAIN1:MOV AH,01H
	INT 21H
	MOV HH2[SI],AL
	INC SI
	LOOP AGAIN1

	CLI

	MOV DX,213H ;通道1工作在方式3下每秒中断计数一次
	MOV AL,37H
	OUT DX,AL
	MOV DX,210H
	MOV AX,1000H
	OUT DX,AL
	MOV AL,AH
	OUT DX,AL

	MOV AH,35H	;初始化8259,接端口IRQ3
	MOV AL,0BH
	INT 21H
	PUSH BX
	PUSH ES
	PUSH DS
	MOV AX,SEG INTPROC
	MOV DS,AX
	MOV DX,OFFSET INTPROC
	MOV AH,25H
	MOV AL,0BH
	INT 21H
	POP DS
	IN AL,21H
	MOV KEEP21,AL
	AND AL,0F7H
	OUT 21H,AL
	STI


AGAIN2:MOV   AH,02H       ;设置光标位置
 	MOV   BH,0            ;页号
 	MOV   DX,1010H   ;光标的行列号
 	INT     10H
      MOV DX,OFFSET HH2
      MOV AH,09H
      INT 21H
	MOV AH,01H
	INT 16H
	JZ AGAIN2
	MOV AH,0
	INT 16H
	CMP AL,1BH
	JZ EXIT
	JMP AGAIN2


EXIT:	MOV   AH,02H       ;恢复光标位置
 	MOV   BH,0
 	MOV   DX,0
 	INT     10H
	MOV AL,KEEP21	;恢复原中断屏蔽字
	OUT 21H,AL
	POP DS
	POP DX
	MOV AH,25H	;恢复原中断向量
	MOV AL,0BH
	INT 21H
	MOV AH,4CH
	INT 21H

INTPROC PROC FAR	;中断服务程序
	STI
	PUSH AX
	PUSH BX
	PUSH DS
	MOV AX,@DATA
	MOV DS,AX

	INC SS1
	CMP SS1,39H
	JBE EXIT1
	INC SS2
	MOV SS1,30H
	CMP SS2,35H
	JBE EXIT1
	INC MM1
	MOV SS2,30H
	CMP MM1,39H
	JBE EXIT1
	INC MM2
	MOV MM1,30H
	CMP MM2,35H
	JBE EXIT1
	INC HH1
	MOV MM2,30H
	CMP HH1,33H
	JBE NEXT
	CMP HH2,31H
	JBE NEXT
      MOV HH1,30H
      MOV HH2,30H
      MOV MM1,30H
      MOV MM2,30H
      MOV SS1,30H
      MOV SS2,30H
  NEXT:    CMP HH1,39H
      JBE EXIT1
      MOV HH1,30H
      INC HH2


EXIT1:MOV AL,20H
	OUT 20H,AL
	POP DS
	POP BX
	POP AX
	IRET
INTPROC ENDP
	END START

⌨️ 快捷键说明

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