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内部硬体的书就可以罗!
整理了一下。看罢文章真佩服作者的毅力,“厉害”]
现在主题是什么呢? 我就写一些电脑内部中断用法及讲一些 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内部硬体的书就可以罗!