?? pcled.asm
字號:
TIM_CTL EQU 203H
TIMER0 EQU 200H
TIMER1 EQU 201H
MODE03 EQU 36H
MODE12 EQU 74H
INTA00 EQU 20H
INTA01 EQU 21H
PORTSEG EQU 211H
PORTBIT EQU 210H
STACK SEGMENT STACK
STA DW 512 DUP (?)
TOP EQU LENGTH STA
STACK ENDS
DATA SEGMENT
MIN1 DB 0
MIN2 DB 0
GAP1 DB 10
GAP2 DB 10
SEC1 DB 0
SEC2 DB 0
INTMASK DB ?
CSREG DW ?
IPREG DW ?
COUNT DB 0
LED DB 3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH,40H
MES DB 'DISPLAY THE LEDS,PRESS ANY KEY TO DOS!'
DB 0AH,0DH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
CLI
MOV DX,TIM_CTL
MOV AL,MODE03
OUT DX,AL
MOV DX,TIMER0
MOV AL,00h
OUT DX,AL
MOV AL,02H
OUT DX,AL
MOV DX,TIM_CTL
MOV AL,MODE12
OUT DX,AL
MOV DX,TIMER1
MOV AL,0aH
OUT DX,AL
MOV AL,00
OUT DX,AL
MOV AX,STACK
MOV SS,AX
MOV SP,TOP
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MES
MOV AH,09
INT 21H
MOV AX,350AH
INT 21H
MOV AX,ES
MOV CSREG,AX
MOV IPREG,BX
PUSH BX
PUSH DS
MOV AX,CS
MOV DS,AX
MOV DX,OFFSET INT_PROC
MOV AX,250AH
INT 21H
POP DS
MOV DX,INTA01
IN AL,DX
MOV INTMASK,AL
AND AL,0FBH
OUT DX,AL
AGAIN: IN AL,21H
OR AL,04H
OUT 21H,AL
STI
MOV AH,01
INT 16H
PUSHF
IN AL,21H
AND AL,0FBH
OUT 21H,AL
POPF
JZ AGAIN
CLI
POP BX
MOV DX,INTA01
MOV AL,INTMASK
OUT DX,AL
MOV DX,IPREG
MOV AX,CSREG
MOV DS,AX
MOV AX,250AH
INT 21H
STI
MOV AX,4C00H
INT 21H
INT_PROC:PUSH AX
PUSH CX
PUSH DX
PUSH DI
MOV AX,DATA
MOV DS,AX
MOV DI,OFFSET MIN1
MOV CL,01
DIS1: MOV AL,[DI]
MOV BX,OFFSET LED
XLAT
MOV DX,PORTSEG
OUT DX,AL
MOV AL,CL
MOV DX,PORTBIT
OUT DX,AL
PUSH CX
MOV CX,350H
DELAY: LOOP DELAY
POP CX
CMP CL,20H
JZ CHG
INC DI
SHL CL,1
MOV AL,00
OUT DX,AL
JMP DIS1
CHG: INC COUNT
CMP COUNT,50
JL QUIT
MOV COUNT,0
INC SEC2
CMP SEC2,10
JL QUIT
MOV SEC2,0
INC SEC1
CMP SEC1,6
JL QUIT
MOV SEC1,0
INC MIN2
CMP MIN2,10
JL QUIT
MOV MIN2,0
INC MIN1
CMP MIN1,6
JL QUIT
MOV MIN1,0
QUIT: MOV DX,PORTBIT
MOV AL,00
OUT DX,AL
MOV DX,INTA00
MOV AL,20H
OUT DX,AL
POP DI
POP DX
POP CX
POP AX
IRET
CODE ENDS
END START
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -