zoukankan      html  css  js  c++  java
  • <微机系统与接口技术>详解外部可屏蔽中断管理器8259A

    命令字

    编程状态 初始化命令寄存器组

    CPU使用IN/OUT指令对8259A芯片进行初始化编程。完成后即进入操作态。

    • ICW1 当D4=1并且A0=0时,表示是对ICW1进行设置。

    • ICW2 当A0=1时,表示对ICW2进行设置。ICW2用于设置芯片送出中断号的高5位。

    • ICW3 当ICW1的D1位为1,表示需要ICW3,才会对ICW3进行设置。

    • ICW4 若ICW1的D0位为1,表示需要ICW4,才会对ICW4进行设置。

    操作状态 操作命令寄存器组

    • OCW1 用来设置中断屏蔽寄存器。

    • OCW2 用来管理中断优先级。

    • OCW3 用于设置或清除特殊屏蔽方式和读取寄存器状态。当D4D3=01且地址线A0=0时,表示对OCW3进行编程。

    命令字总结

    8259A工作逻辑

    首先CPU使用IN/OUT指令对8259A芯片进行初始化编程,为其设定好工作方式,然后8259A进入操作模式可以处理外部中断,此时CPU可以通过IN/OUT指令实时对8259A的工作机制进行刷新。这也是CPU命令对8259A就是这样编程的。
    具体到一条CPU命令如 OUT 21H, AL

    工作周期
    1.当有外部中断通过IR0~IR7输入时,根据IMR状态将其存入IRR寄存器。
    2.然后8259A通过INT引脚对CPU提出外部中断请求,若CPU同意中断,则连续向INTR* 输出两个脉冲信号,若未应答则等待。
    3.获取到第一个INTR* 信号后,置位最高优先级的ISR位,并将相应的IRR位复位。
    4.在第二个INTR*脉冲信号时,8259A向数据总线输出8位中断向量号供CPU读取。至此一个工作周期完成。


    8259A涉及到的编程

    • 例1、
      8259A的IRQ0的中断请求来自定时器8253,每隔55ms产生一次。DOS系统利用它实现日时钟计时功能。这里我们修改了原08H号中断服务程序的部分内容,使得每次中断都显示一串信息,即下面的NEW08H子程序。我们在主程序中首先用NEW08H子程序替换原08H号中断服务,并进行十次08H中断,然后再把08号中断恢复到原来的。
    DATA SEGMENT
    STR     DB '08H Interupt !',$
    COUNTER DB 0
    DATA ENDS
    CODE SEGMENT
    MOV AX, 3508H
    INT 21H
    PUSH ES
    PUSH BX
    CLI
    PUSH DS
    MOV DS, SEG NEW08H
    MOV DX, OFFSET NEW08H
    MOV AX, 2508H
    INT 21H
    POP DS
    IN AL, 21H
    PUSH AX
    AND AL, FEH
    OUT 21H, AL
    MOV COUNTER 0
    STI
    START1: CMP COUNTER 10
    JB START1
    CLI
    POP AX
    OUT 21H, AL
    POP DX
    POP DS
    MOV AX, 2508H
    INT 21H
    STI 
    MOV AX, 4C00H
    INT 21H
    NEW08H PROC
    STI
    PUSH AX
    PUSH BX
    PUSH DS
    MOV  DS, SEG DATA
    INC COUNTER
    MOV SI, OFFSET STR
    CALL DPSTRI
    MOV AL, 20H
    OUT 20H, AL
    POP DS
    POP BX
    POP AX
    IRET
    NEW08H ENDP
    DPSTRI PROC
    PUSH AX
    PSUH BX
    DPS1: LODSB
    CMP AL, 0
    JZ DPS2
    MOV BX, 0
    MOV AH,0EH
    INT 10H
    JMP DPS1
    DPS2: POP BX
    POP AX
    RET
    DPSTRI ENDP
    CODE ENDS
    
  • 相关阅读:
    css样式的六种选择器
    css 颜色表示法
    css 文本设置
    “http”和“https”的区别是什么?优缺点是什么?
    Httpclient
    接口认证:Bearer Token(Token 令牌)
    哪个参数用来区分请求来自客户(手机)端还是服务器(PC)端?
    常用的HTTP响应头
    Http 请求头包含哪些信息?
    单例集合的体系
  • 原文地址:https://www.cnblogs.com/dynmi/p/13581092.html
Copyright © 2011-2022 走看看