PC中断原理(吐血推荐)


PC中断原理

[帝国老手 吐血推荐:好象是一个叫Yu Hwang的大做,题目是我加的,文章我略微
整理了一下。看罢文章真佩服作者的毅力,“厉害”]


  现在主题是什么呢? 我就写一些电脑内部中断用法及讲一些 8259 IC 是如何动作及如
何RESET 并说明为何 RESET 会造成 S-ICE OR GAMEBUTER AND GAMETOOLS等软体无法执行
请用心看喔!不然你会渐渐看不懂我的意思了..劝您最好用列表机印出来喔!


 图(一)
┌━━━━┬━━━━━━━━┬━━━━━━━━━━━━━━━━━━━━━━━┐
┃位   址 ┃中  断  编  号  ┃  中      断      名       称                 ┃
├━━━━┼━━━━━━━━┼━━━━━━━━━━━━━━━━━━━━━━━┤
┃  0-3   ┃  INT   0       ┃ 除零中断                                     ┃
┃  4-7   ┃        1       ┃ 单步中断                                     ┃
┃  8-B   ┃        2       ┃ 不可罩盖中断                                 ┃
┃  C-F   ┃        3       ┃ 断点中断                                     ┃
┃ 10-13  ┃        4       ┃ 溢位中断                                     ┃
┃ 14-17  ┃        5       ┃ 萤幕列印中断                                 ┃
┃ 18-1B  ┃        6       ┃ 保留                                         ┃
┃ 1C-1F  ┃        7       ┃ 保留                                         ┃
┃ 20-23  ┃        8       ┃ 计时中断 (8259 #1 IRQ 0)                     ┃
┃ 24-27  ┃        9       ┃ 键盘介面中断 (8259 #1 IRQ 1)                 ┃
┃ 28-2B  ┃        A       ┃ 保留 (8259 #1 IRQ 2)                         ┃
┃ 2C-2F  ┃        B       ┃ 通讯 1 介面中断 (8259 #1 IRQ 3)              ┃
┃ 30-33  ┃        C       ┃ 通讯 2 介面中断 (8259 #1 IRQ 4)              ┃
┃ 34-37  ┃        D       ┃ 列表机介面 2 中断 (8259 #1 IRQ 5)            ┃
┃ 38-3B  ┃        E       ┃ 磁碟机介面中断 (8259 #1 IRQ 6)               ┃
┃ 3C-3F  ┃        F       ┃ 列表机介面 1 中断 (8259 #1 IRQ 7)            ┃
┃ 40-43  ┃       10       ┃ 影像中断                                     ┃
┃ 44-47  ┃       11       ┃ 设备检查中断                                 ┃
┃ 48-4B  ┃       12       ┃ 记忆体大小中断                               ┃
┃ 4C-4F  ┃       13       ┃ 磁碟 I/O 中断                                ┃
┃ 50-53  ┃       14       ┃ 通讯 I/O 中断                                ┃
┃ 54-57  ┃       15       ┃ 卡带 I/O 中断                                ┃
┃ 58-5B  ┃       16       ┃ 键盘 I/O 中断                                ┃
┃ 5C-5F  ┃       17       ┃ 列表机 I/O 中断                              ┃
┃ 60-63  ┃       18       ┃ Basci 进入中断                               ┃
┃ 64-67  ┃       19       ┃ 启动程式中断 (Boot strap)                    ┃
┃ 68-6B  ┃       1A       ┃ 计时中断                                     ┃
┃ 6C-6F  ┃       1B       ┃ 键盘 Break 中断                              ┃
┃ 70-73  ┃       1C       ┃ 计时器滴声中断                               ┃
┃ 74-77  ┃       1D       ┃ 影像参数中断                                 ┃
┃ 78-7B  ┃       1E       ┃ 磁片参数中断                                 ┃
┃ 7C-7F  ┃       1F       ┃ 影像图形字元中断                             ┃
┃ 80-83  ┃       20       ┃ DOS 程式结束中断                             ┃
┃ 84-87  ┃       21       ┃ DOS 功能呼叫中断                             ┃
┃ 88-8B  ┃       22       ┃ DOS 结束位址中断                             ┃
┃ 8C-8F  ┃       23       ┃ DOS CTRL+BREAK 出口位址中断                  ┃
┃ 90-93  ┃       24       ┃ DOS 严重错误出口位址中断                     ┃
┃ 94-97  ┃       25       ┃ DOS 绝对磁碟读取                             ┃
┃ 98-9B  ┃       26       ┃ DOS 绝对磁碟写入                             ┃
┃ 9C-9F  ┃       27       ┃ DOS 程式结束,但保留在记忆体中断              ┃
┃ AO-FF  ┃     28-3F      ┃ DOS 保留                                     ┃
┃100-17F ┃     40-5F      ┃ 保留                                         ┃
┃180-19F ┃     60-67      ┃ 供使用者程式之中断                           ┃
┃1A0-1BF ┃     68-6F      ┃ 不用                                         ┃
┃1C0-1C3 ┃       70       ┃ 即时时脉中断 (8259 #2 IRQ 8)                 ┃
┃1C4-1C7 ┃       71       ┃ 保留未用     (8259 #2 IRQ 9)                 ┃
┃1C8-1CB ┃       72       ┃ 保留未用     (8259 #2 IRQ10)                 ┃
┃1CC-1CF ┃       73       ┃ 保留未用     (8259 #2 IRQ11)                 ┃
┃1D0-1D3 ┃       74       ┃ 保留未用     (8259 #2 IRQ12)                 ┃
┃1D4-1D7 ┃       75       ┃ 80287 错误处理中断 (8259 #2 IRQ13)           ┃
┃1D8-1DB ┃       76       ┃ 硬式磁碟机控制器 (8259 #2 IRQ14)             ┃
┃1DC-1DF ┃       77       ┃ 保留未用 (8259 #2 IRQ15)                     ┃
┃1E0-1FF ┃     78-7F      ┃ 不用                                         ┃
┃200-217 ┃     80-85      ┃ Basic 保留                                   ┃
┃218-3C3 ┃     86-F0      ┃ 执行 Basic 时 , 供 Basic 解译器使用          ┃
┃3C4-3FF ┃     F1-FF      ┃ 不用                                         ┃
└━━━━┴━━━━━━━━┴━━━━━━━━━━━━━━━━━━━━━━━┘
                以上是 PC /AT  中断向量表的功能表


 再来就是讲 8259 IC 的一些动作方式及设定方法


 图(二)         ┌━━━━━┐  ┌━━━━━┐
            /CS ┃1         └━┘        28┃VCC
            /WA ┃2                       27┃A0
            /RD ┃3     ⒏⒉⒌⒐ A       26┃/INTA
        ┌   D7 ┃4                       25┃IR7
  连接到┃   D6 ┃5                       24┃IR6
        ┃   D5 ┃6     主  I  C       23┃IR5
  CPU┘   D4 ┃7                       22┃IR4
        ┐   D3 ┃8                       21┃IR3
    中  ┃   D2 ┃9     各接脚图说明      20┃IR2
        ┃   D1 ┃10                      19┃IR1
        └   D0 ┃11                      18┃IR0
            CAS0┃12                      17┃INT
            CAS1┃13                      16┃/SP / /EN
             GND┃14                      15┃CAS2
                └━━━━━━━━━━━━━┘


VCC 电源    
/CS 晶片选取
GND 接地          当此脚信号为『低电位』时,表示 8259被致能;反之,则是禁能
/RD 读取
      当此脚为『低电位』时,CPU会要求 8259A 送出 IRR (中断要求到暂存器)
      ISR (中断服务暂存器),及 IMR (中断罩盖暂存器) 其中之一到 D0-D7上。
/WR 写入
      当此脚为『低电位』时,CPU要送控制字组 ( control word) 给 8259A。
D0~D7 资料线
        为跟 CPU 连接线
A0  存取线
      此信号与/R0,/WR,/CS合起来决定 CPU 要对那一个暂存器(IMR,IRR,ISR...)做读写
      动作
INT 中断
      此信号是用来通知CPU有周边设备要求中断服务,此线接到 80x86 的/INTA 接脚上
/INTA 中断认知
        为CPU认可一个中断请求的认知讯号,此信号须接到 80x86 /INTA 输出线上
IR0~IR7 中断请求 0~7
          这八条讯号线是用来连接外部周边设备作为它们的中断要求信号线。
/SP / /EN 主IC规划 及 缓冲致能
            此脚具二种功能 一是:若为缓冲型态时,此接脚是用来做为缓冲器的收发
                           二是:若不是缓冲型态,则是用来指定 8259 IC为主 (SP=1)
                                或仆 (SP=0)
CAS0~CAS2 串接线
            这三条是用来接多颗的 8259 IC,最多可以串接 5个喔! 每颗8259 IC可以处
            理八个中断请求,所以共可以使用 64 个中断请求。 在PC AT中有 16个中断
            请求。 如附图(三)


图(三) 8259 中断控制器方块图    ┌━┐
                                ┃  ┃
          ┌━━━━━━━━┐  ┃内┃  ┌━━━━━━━━━━━━━━━━━┐
D7-D0 <-->┃资料汇流排缓冲器┃┌┤  ├━┤  控    制    逻   辑   单   元   ┃
          └━━━━━━━━┘┃┃  ┃  └━━━━━━━━━━━━━━━━━┘
          ┌━━━━━━━━┐┃┃部┃    ┃         ┃         ┃
  /RD --->┤读/写 逻辑电路  ┃┃┃  ┃    ┃         ┃         ┃
  /WR --->┤                ├┤┃  └━━━━━━━━━━━━━━━━━━┐
  A0  --->┤                ┃┃┃汇                                      ┃
          └━━━┬━━━━┘┃┃  ┌━━━━━━━━━━━━━━━━━━┘
                  ┃          ┃┃  ┃    ┃         ┃         ┃
  /CS --->━━━━┘          ┃┃  ┃ ┌━━━┐   ┌━━┐   ┌━━━┬ IR0
                              ┃┃流┃ ┃中暂  ┃   ┃优  ┃   ┃中暂  ┃ ...
          ┌━━━━━━━━┐┃┃  ┃ ┃断存  ┃<->┃先  ┃<->┃断存  ┃ ...
 CAS0 --->┤串联缓冲器      ┃┃┃  ┃ ┃处器  ┃   ┃调器┃   ┃要器  ┃ ...
 CAS1 --->┤     /比较器    ├┘┃排┃ ┃理 ISR┃   ┃解  ┃   ┃求 IRR┃ ...
 CAS2 --->┤                ┃  ┃  ┃ └━━━┘   └━━┘   └━━━┴ IR7
          └━━━┬━━━━┘  ┃  ┃    ┃         ┃         ┃
/SP / /EN --->━━┘            ┃  ┃┌━━━━━━━━━━━━━━━━━┐
                                └━┘┃ 中  断  罩  盖  暂  存  器 (IMR) ┃
                                      └━━━━━━━━━━━━━━━━━┘


  中断请求暂存器 ( Interrupt Request Register 简称 IRR)
  中断罩盖暂存器 ( Interrupt Mask Register    简称 IMR)
  中断处理暂存器 ( Interrupt Service Register 简称 ISR)


-------------------------------------------------------------------------------
  再来跟各位说说 8259 初始值设定步骤 如附图 (四):


 图(四): 8259 ICWS 流程图
            ┌━━━┐
            ┃ ICW1 ┃  (Initialization Command Words 简称 ICW) 初始值命令字组
            └━━━┘
                        (Operation Command Words 简称 OCW) 作业命令字组


            ┌━━━┐
            ┃ ICW2 ┃  说明: 8259 必须要先送出 ICW1 接著再送 ICW2,二者顺序不可
            └━━━┘        以巅倒喔! 否则会有错误的。




                 
              /   \
       N    /CASCADE \
      ┌━ \    ?   /
      ┃     \   /
      ┃        
      ┃SNGL=1     Y (SNGL=0)
      ┃    ┌━━━┐
      ┃    ┃ ICW3 ┃
      ┃    └━━━┘
      ┃
      └━━━>
                 
              /   \
       N    /        \
     ┌━━\  ICW4  /
     ┃      \   /
     ┃ICW4=0   
     ┃            Y (ICW4=1)
     ┃     ┌━━━┐
     ┃     ┃ ICW4 ┃
     ┃     └━━━┘
     ┃
     └━━━>
        ┌━━━━━━━┐
        ┃ NORMAL       ┃
        ┃    OPERATION ┃
        └━━━━━━━┘


 我来讲解一下 ICW1,ICW2,ICW3,ICW4 实际的用法....:如附图(五)


  
    A0    D7    D6    D5    D4    D3    D2    D1    D0
 ┌━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┐
 ┃ 0  ┃ A7 ┃ A6 ┃ A5 ┃ 1  ┃LTIM┃ AD4┃SNGL┃ IC4┃
 └━━┴━┬┴━━┴━┬┴━━┴━┬┴━┬┴━┬┴━┬┘  ┌━━━━━━━━┐
           └━━┬━━┘          ┃    ┃    ┃    └━━┤1: 需要 ICW4    ┃
                 ┃                ┃    ┃    ┃          ┃0: 不需要 ICW4  ┃
                 ┃                ┃    ┃    ┃          └━━━━━━━━┘
                 ┃                ┃    ┃    ┃          ┌━━━━━━━━┐
                 ┃                ┃    ┃    └━━━━━┤1: 单一         ┃
                 ┃                ┃    ┃                ┃0: 串接模式     ┃
                 ┃                ┃    ┃                └━━━━━━━━┘
                 ┃                ┃    ┃                ┌━━━━━━━━┐
                 ┃                ┃    ┃                ┃呼 叫 位 址 间隔┃
                 ┃                ┃    └━━━━━━━━┤1: 4个间隔      ┃
                 ┃                ┃                      ┃0: 8个间隔      ┃
                 ┃                ┃                      └━━━━━━━━┘
                 ┃                ┃                      ┌━━━━━━━━┐
                 ┃                └━━━━━━━━━━━┤1: 准位触发     ┃
                 ┃                                        ┃0: 边缘触发模式 ┃
                 ┃                                        └━━━━━━━━┘
                 ┃                                        ┌━━━━━━━━┐
                 └━━━━━━━━━━━━━━━━━━━━┤A5-A7 中断向量位┃
                                                           ┃址,只在MCS80/85 ┃
                                                           ┃模式下动作      ┃
                                                           └━━━━━━━━┘


   
     A9    D7    D6    D5    D4    D3    D2    D1    D0
  ┌━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┐
  ┃ 1  ┃ A16┃ A14┃ A13┃ A12┃ A11┃ A10┃ A9 ┃ A8 ┃
  ┃    ┃ /T7┃ /T6┃ /T5┃ /T6┃ /T3┃    ┃    ┃    ┃
  └━━┴━┬┴━┬┴━┬┴━┬┴━┬┴━┬┴━┬┴━┬┘
            └━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┐
                                                            ┃
                                                 ┌━━━━━━━━━━━━┐
                                                 ┃A8-A15 是中断向量的位址 ┃
                                                 ┃(MCS 80/85 模式下)      ┃
                                                 ┃T3-T7 是8086/8088 模式的┃
                                                 ┃中断向量位址            ┃
                                                 └━━━━━━━━━━━━┘


   
     A0    D7    D6    D5    D4    D3    D2    D1    D0
  ┌━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┐
  ┃  1 ┃ S7 ┃ S6 ┃ S5 ┃ S4 ┃ S3 ┃ S2 ┃ S1 ┃ S0 ┃
  └━━┴━┬┴━┬┴━┬┴━┬┴━┬┴━┬┴━┬┴━┬┘
            └━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┐
                                                            ┃
                                                 ┌━━━━━━━━━━━━┐
                                                 ┃1: IR输入有一从元件     ┃
                                                 ┃0: IR输入没有从元件     ┃
                                                 └━━━━━━━━━━━━┘


   
     A0    D7    D6    D5    D4    D3    D2    D1    D0
  ┌━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┐
  ┃  1 ┃ 0  ┃ 0  ┃  0 ┃  0 ┃ 0  ┃ 1D2┃ 1D1┃1D0 ┃
  └━━┴━━┴━━┴━━┴━━┴━━┴━┬┴━┬┴━┬┘
                                          └━━┼━━┘
                                                ┃
                   ┌━┬━┬━┬━┬━┬━┬━┬━┐
                   ┃0 ┃1 ┃2 ┃3 ┃4 ┃5 ┃6 ┃7 ┃
                   ├━┼━┼━┼━┼━┼━┼━┼━┤
                   ┃0 ┃ 1┃0 ┃ 1┃ 0┃1 ┃0 ┃1 ┃
                   ├━┼━┼━┼━┼━┼━┼━┼━┤
                   ┃0 ┃0 ┃1 ┃ 1┃0 ┃0 ┃1 ┃1 ┃
                   ├━┼━┼━┼━┼━┼━┼━┼━┤
                   ┃0 ┃0 ┃ 0┃ 0┃1 ┃ 1┃ 1┃ 1┃
                   └━┴━┴━┴━┴━┴━┴━┴━┘


   
     A0    D7    D6    D5    D4    D3    D2    D1    D0
  ┌━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┐
  ┃ 1  ┃ 0  ┃  0 ┃  0 ┃SFNM┃ SUF┃M/S ┃AE01┃ UPM┃
  └━━┴━━┴━━┴━━┴━┬┴━┬┴━┬┴━┬┴━┬┘
                              ┃    └━┬┘    ┃    ┃  1=8086/8088 模式
                          ┌━┘      互┃      ┃    └━
                          ┃          相┃      ┃        0=MCS 80/85 模式
                          ┃          配┃      ┃
                      1:特别巢状模式  合┃      └━━━━1=自动 E0I
                      0:不是特别巢状 ┌━━┬━━━━━┐ 0=正常 E0I
                        模式         ┃0 X ┃1.没有缓冲┃
                                     ├━━┤  模式    ┃
                                     ┃1 0 ┃2.缓冲模式┃
                                     ├━━┤  /从元件 ┃
                                     ┃1 1 ┃3.缓冲模式┃
                                     ├━━┘  /主元件 ┃
                                     └━━━━━━━━┘


  哇...我花了好多时间KEYIN喔..怎么都没人写信给我感谢一下呢?? 哈 ..我93年6月20日
  要到成功岭暑训罗..这是之前的小礼物吧! 若下一集可能要等到 7月底罗!..所以希望各
  位好好的利用 暑假多K点书,也希望您真的喜欢我写的『破解入门』的话 请到破解技术
  交流网来写写信喔!..当然你有任何问题 可以写信给我 ID:YU HWANG 就可以了 本网要
  您的加入才会更加茁壮,当然来本网并非一定要高手才可以来的喔!..也有一些飙信大王
  的信管等著您来飙信,我希望藉著您对我的爱护,并对破解技术交流网草创不久给与鼓励
  与支持。


  讲了一些话..再来继续讲 OCW的指令用法..各位看官接招罗...如附图(六):


 
      A0    D7    D6    D5    D4    D3    D2    D1    D0
   ┌━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┐
   ┃ 1  ┃ M7 ┃ M6 ┃ M5 ┃ M4 ┃ M3 ┃ M2 ┃ M1 ┃ M0 ┃
   └━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┘


 (D7~M0)
    这些是用来设定及清除 IMR (中断罩盖暂存器) 中相对应的罩盖位元。
    其中 M0 控制 IR0,M1控制 IR1......依此类推 M7控制IR7。
    若 MX=1 表示相对应的 IRX 中断被禁能, 此时若有来自 IRX 的硬体中断 8259A 亦不
    会去理会中断请求,若反之 MX=0 则表示其对应的中断致能,此时若有中断产生时,CPU
    会跳到中断副程式去执行。




 
      A0    D7    D6    D5    D4    D3    D2    D1    D0
   ┌━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┐
   ┃ 0  ┃ R  ┃ SL ┃ EOI┃ 0  ┃ 0  ┃ L2 ┃ L1 ┃ L0 ┃
   └━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┘


 (D2~D0)
     此三个位元是决定中断序号,配合D5~D7使用形成8种组合。


 (D4~D3)
     此二位元必须设定为 0 ,为 OCW2 的识别码。
 (D7~D5)
     此三位元是用来控制旋转模式,中断结束模式以及二者合并的模式,共有 8 种组合。
     当 8259A收到此一命令组时,它会自动将目前正在接受处理的IR输入所对应ISR的位
     元清除为0。




 
      A0    D7    D6    D5    D4    D3    D2    D1    D0
   ┌━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┐
   ┃ 0  ┃ 0  ┃ESMM┃SMM ┃ 0  ┃ 1  ┃ P  ┃ RR ┃ RIS┃
   └━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┘


 (D1,D0)
    此二位元是读取 ISR及IRR 暂存器中的内容。 共有四组组合方式...
     ┌━━┬━━┬━━━━━━┐
     ┃ RR ┃RIS ┃  功   能   ┃
     ├━━┼━━┼━━━━━━┤
     ┃ 0  ┃ 0  ┃不动作      ┃
     ├━━┼━━┼━━━━━━┤
     ┃ 0  ┃ 1  ┃不动作      ┃
     ├━━┼━━┼━━━━━━┤
     ┃ 1  ┃ 0  ┃读IRR暂存器 ┃
     ├━━┼━━┼━━━━━━┤
     ┃ 1  ┃ 1  ┃读ISR暂存器 ┃
     └━━┴━━┴━━━━━━┘


 (D2)
    此位元是 8259A为查询或中断 模式。 当P=1时,8259A 被设定为查询模式,反之为
    非查询模式。


 (D4~D3)
    此二位元没有用到。D3必须设定为1 (OCW3的识别位元),D4必须设定为0 。


 (D6~D5)
    此二位元是用来设定特殊罩盖模式(Special Mask Mode),共有四种组合,如下..
     ┌━━┬━━┬━━━━━━━┐
     ┃ESMM┃SMM ┃  功   能     ┃
     ├━━┼━━┼━━━━━━━┤
     ┃ 0  ┃ 0  ┃不动作        ┃
     ├━━┼━━┼━━━━━━━┤
     ┃ 0  ┃ 1  ┃不动作        ┃
     ├━━┼━━┼━━━━━━━┤
     ┃ 1  ┃ 0  ┃清除罩盖暂存器┃
     ├━━┼━━┼━━━━━━━┤
     ┃ 1  ┃ 1  ┃清除罩盖暂存器┃
     └━━┴━━┴━━━━━━━┘


  哇...终於讲解完 8259A的一些命令组的用法及一些简单介绍...


 附图(七)
    8259A #1 (主)      8259A #1 (次)
 ┌━━┬━━━┐   ┌━━┬━━━┐  如附图(七)中,可以大概看出 8259A所要的暂存
 ┃位址┃暂存器┃   ┃位址┃暂存器┃    器超过 2个I/O位址所能提供的,解决的方法
 ├━━┼━━━┤   ├━━┼━━━┤    是必须以一定的规划流程及利用某些特定位
 ┃ 20H┃ ICW1 ┃   ┃ A0H┃ ICW1 ┃    元来决定暂存器。
 ├━━┼━━━┤   ├━━┼━━━┤
 ┃ 21H┃ ICW2 ┃   ┃ A1H┃ ICW2 ┃
 ├━━┼━━━┤   ├━━┼━━━┤
 ┃ 21H┃ ICW3 ┃   ┃ A1H┃ ICW3 ┃
 ├━━┼━━━┤   ├━━┼━━━┤
 ┃ 21H┃ ICW4 ┃   ┃ A1H┃ ICW4 ┃
 ├━━┼━━━┤   ├━━┼━━━┤
 ┃ 21H┃ 0CW1 ┃   ┃ A1H┃ 0CW1 ┃
 ├━━┼━━━┤   ├━━┼━━━┤
 ┃ 20H┃ 0CW2 ┃   ┃ A0H┃ 0CW2 ┃
 ├━━┼━━━┤   ├━━┼━━━┤
 ┃ 20H┃ 0CW3 ┃   ┃ A0H┃ 0CW3 ┃
 └━━┴━━━┘   └━━┴━━━┘


 我写一些范例让您知道一下规划方式:


     ┌ MOV     AL,11H ┐ICW1,8259主 需要ICW4 IR 中断输入为边缘触发模式
     ┃ OUT     20H,AL ┘
     ┃ MOV     AL,8   ┐ICW2,从中断向量表 TYPE 8 开始,可以参考 ICW2
     ┃ OUT     21H,AL ┘
8259主  MOV     AL,04H ┐ICW3,(主) 8259的IR2为仆 8259(次)的 中断输入
     ┃ OUT     21H,AL ┘
     ┃ MOV     AL,01H ┐ICW4,非缓冲模式,8086/8088
     ┃ OUT     21H,AL ┘
     ┃ MOV     AL,0FFH┐8259(主) 之OCW1,罩盖所有的中断输入
     └ OUT     21H,AL ┘


     ┌ MOV     AL,11H ┐ICW1,8259(次),需要ICW4 IR中断输入为边缘触发模式
     ┃ OUT     0A0H,AL┘
     ┃ MOV     AL,70H ┐ICW2,从中断向量表 TYPE 12 开始
     ┃ OUT     0A1H,AL┘
     ┃ MOV     AL,02H ┐ICW3,次 ID
8259次  OUT     0AH,AL ┘
     ┃ MOV     AL,01H ┐ICW4,没有缓冲模式,8088/8086 模式
     ┃ OUT     0A1H,AL┘
     ┃ MOV     AL,0FFH┐8259(次)之 OCW1,罩盖所有中断输入
     └ OUT     0A1H,AL┘
 若不懂的话,可以参考我前面的附图就可以罗! 以上我希望您能多用点心去研究,如果您没
 用些心去了解的话,那我也没那么多时间可以一一为您解释,我相信我所写出来的这些一定
 可以让您了解 8259的概况,当然还有一些细节比较无关紧要,所以我就没列出来了.您可以
 去参考一些PC/AT内部硬体的书就可以罗!

你可能感兴趣的:(技术文章_转载)