华人澳洲中文论坛

热图推荐

    对一个间断顺序对比具体的阐明

    [复制链接]

    2022-11-19 15:25:48 13 0

    #头条群星9月榜#
    8086的间断由间断管制器芯片8259A管制,其外部构造如下图:


    图1
    CPU与8259的衔接如下图:


    图2
    要特别留意,8259由引脚INT向CPU收回间断申请,CPU则经过INTA引脚响应这个申请。
    上面是一个间断顺序,这个顺序是显示10遍字符串‘A 8259A Interrupt’:


    图3
    上图是定义字符串


    图4
    上图是保留原间断向量表中的8号间断源的地址,调用了INT 21H的35H号功用。


    图5
    上图是将本人编写的间断顺序new08的入口地址放入间断向量表类型8的存储单元中,调用了INT 21H的25H号功用。


    图6
    因为上图的间断向量表是零碎设定的,只能暂时更改,所以要把类型8间断的向量地址保留上去。


    图7
    留意图1和图2中8259有8个间断收集引脚IR0-IR8,但在某个详细的顺序中,纷歧定要整个用到,所以能够经过间断屏蔽寄存器IMR设定哪些引脚失效。上图是包管IR0引脚无效,用于接纳按时器8253的间断申请。


    图8
    主顺序运转到这里当前,就在这里循环等候间断顺序的间断申请。


    从上图开始进入间断顺序。


    留意counter是间断顺序和主顺序进行交流的变量。




    下面两个图是从字符串‘A 8259A Interrupt’逐一掏出字符,并调用int10h进行显示,其中的BX表现字符显示的地位和色彩,AH是INT10h的功用号。


    间断顺序每调用一次,就显示一次字符串,每次运转完当前都要恢复图3中保留的原间断向量表中的8号间断源的地址。


    最初要恢复图4中保留的原间断类型8在向量表中的地址和图7中保留的原间断屏蔽寄存器IMR中的内容。
    下面顺序这个编程思绪能够概括如下:
    1:开始编写顺序的时分,咱们要有图2的大略印象,即8259和8086是经过间断引脚INT和INTR衔接的,咱们编写的这个顺序,是要响应8259经过INT引脚向CPU收回的间断申请的,这个间断申请能够是一个5V的高电平。
    2:8259每隔一段时间(好比1秒钟)才收回一次申请。
    3:8086响应一次间断申请就履行一次间断顺序new08。
    4:因为8259A1秒钟才收回一次申请,而CPU履行指令的时间则十分快(纳秒级),那末,CPU过剩的时间怎么办呢?因此,主顺序中必需有一个循环等候指定(图8),也就是说,当CPU响应一次间断即履行完一次间断顺序当前,过剩的时间就履行循环指令,等候下一次间断申请的到来。
    5:必需把主顺序和间断顺序区别开来,主顺序确定会被CPU履行,间断顺序则只要当INT引脚泛起8259的间断申请当前才会被履行。

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    中级会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题37

    帖子43

    积分203

    图文推荐