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

📄 8259.asm

📁 微机原理中中断控制器的应用
💻 ASM
字号:
DATA SEGMENT
SEG7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
TIM  DB 0
     DB 0
     DB 0
     DB 0
     DB 0
     DB 0
SAVE DW 2 DUP(?)
PORT53 EQU 280h
PORT59 EQU 20H
PORT EQU  2B0H
DATA  ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC FAR
     MOV AX,DATA
     MOV DS,AX
     MOV ES,AX
     CLI
     PUSH ES
     MOV AH,35H
     MOV AL,0BH
     INT 21H
     MOV SAVE ,BX
     MOV SAVE+2,ES
     POP ES
     PUSH DS
     MOV BX,SEG CLOCK
     MOV DS,BX
     MOV DX,OFFSET CLOCK
     MOV AH,25H
     MOV AL,0BH
     INT 21H
     POP DS
     MOV DX,PORT53+3
     MOV AL,00110111B
     OUT DX,AL
     MOV AX,1000H
     MOV DX,PORT53
     OUT DX,AL
     MOV AL,AH
     OUT DX,AL
     
     MOV DX,PORT53+3
     MOV AL,01110111B
     OUT DX,AL
     MOV AX,1000H
     MOV DX,PORT53+1
     OUT DX,AL
     MOV AL,AH
     OUT DX,AL
     
     MOV DX,PORT59+1
     IN AL,DX
     PUSH AX
     AND AL,11110111B
     OUT DX,AL
     STI
     CALL DISP
     PUSH DS
     MOV DX,SAVE
     MOV BX,SAVE+2
     MOV DS,BX
     MOV AL,0BH
     MOV AH,25H
     INT 21H
     POP DS
     POP AX
     MOV DX,PORT59+1
     OUT DX,AL
     MOV AH,4CH
     INT 21H
MAIN ENDP
CLOCK PROC FAR
     CMP TIM,9
     JZ  L2
     INC TIM
     JMP EXIT
  L2:MOV TIM,0
     INC TIM+1
     CMP TIM+1,6
     JNZ EXIT
     MOV TIM+1,0
     INC TIM+2
     CMP TIM+2,10
     JNZ EXIT
     MOV TIM+2,0
     INC TIM+3
     CMP TIM+3,6
     JNZ EXIT
     MOV TIM+3,0
     INC TIM+4
     CMP TIM+4,10
     JNZ EXIT
     MOV TIM+4,0
     INC TIM+5
EXIT:MOV AL,20H
     MOV DX,PORT59
     OUT DX,AL
     IRET
CLOCK ENDP
DISP PROC NEAR
     MOV BP,00100000B
     LEA SI,TIM
L0:  MOV AH,1
     INT 16H
     JNZ L1
     MOV AX,BP
     MOV DX,PORT
     OUT DX,AL
     MOV DX,PORT+1
     MOV AL,[SI]
     LEA BX,SEG7
     XLAT
     OUT DX,AL
     CALL DELAY
     INC SI
     ROR BP,1 
     CMP BP,10000000B
     JNZ  L0
     MOV BP,00100000B
     LEA SI,TIM
     JMP L0
L1:  RET
DISP ENDP
DELAY PROC NEAR
      PUSH CX
      MOV  CX,0FF00H
      LOOP $
      POP  CX
      RET
DELAY ENDP
CODE ENDS
END MAIN



⌨️ 快捷键说明

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