📄 sy4-3.asm
字号:
; 实验四 8253定时/计数器实验
; SY4-2.ASM
TIM_CTL EQU 293H
TIMER0 EQU 290H
TIMER1 EQU 291H
TIMER2 EQU 292H
MODE20 EQU 10010000B
NUM0 EQU 060H
DATA SEGMENT
MESS2 DB '8253A TIMER2 IN MODE0! COUNT=0FEH',0DH,0AH
DB 'PRESS ANY KEY quit TO DOS !',0DH,0AH,'$'
DCTBL DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h
NUM DW ?
DATA ENDS
STAC SEGMENT PARA STACK 'STACK'
STA DB 50 DUP(?)
TOP EQU LENGTH STA
STAC ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START: NOP
MOV AX,NUM0
MOV NUM,AX
MOV AX,DATA
MOV DS,AX
MOV AX,STAC
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV DX,OFFSET MESS2
MOV AH,09
INT 21H
CLI
MOV DX,TIM_CTL
MOV AL,MODE20
OUT DX,AL
MOV DX,TIMER2
MOV AX,NUM0
OUT DX,AL
STI
LOP1: MOV DX,TIMER2
IN AL,DX
MOV AH,00H
MOV NUM,AX
CALL DISP
MOV AX,NUM
CMP AX,00H
JNZ LOP2
MOV AX,NUM0
MOV NUM,AX
LOP2: NOP
MOV DL,0FFH
MOV AH,06H
INT 21H
JZ LOP1
MOV AX,4C00H
INT 21H
RET
MAIN ENDP
DISP PROC NEAR
PUSH DS
PUSH CX
PUSH AX
DISP0: MOV CX,NUM
MOV AX,CX
AND AL,0FH
MOV AH,AL
MOV AL,CL
MOV CL,04H
SHR AL,CL
MOV CH,AL
MOV CL,AH
DISPL: mov dx,288h
mov al,02h
out dx,al
mov dx,284h
mov al,cl
mov ah,0
lea bx,dctbl
mov si,ax
mov al,[bx+si]
out dx,al
CALL DELAY1
DISPH: mov dx,288h
mov al,01h
out dx,al
mov dx,284h
mov al,ch
mov ah,0
lea bx,dctbl
mov si,ax
mov al,[si+bx]
out dx,al
CALL DELAY1
POP AX
POP CX
POP DS
RET
DISP ENDP
DELAY1 PROC NEAR
PUSH CX
MOV CX,0F00H
LOOP $
POP CX
RET
DELAY1 ENDP
DELAY2 PROC NEAR
PUSH AX
PUSH CX
MOV CX,030H
DL21: CALL DELAY1
LOOP DL21
POP CX
POP AX
RET
DELAY2 ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -