8259A的初始化(多片)
1、主从式8259A的初始化设置:
初始化设置如下:
(1)中断触发方式:边沿触发

(2)中断屏蔽方式:常规屏蔽方式,即使用OCW1向IMR写屏码

(3)中断优先级排队方式:固定优先级的完全嵌套方式

(4)中断结束方式:非自动结束方式的两种命令格式
即:不指定EOI方式、指定EOI方式
在中断服务程序完毕时和中断返回之前,用结束命令代码20H或6XH结束中断。

(5)级联方式:两片主/从连接
从片的中断输出引脚INT连到主片的中断请求输入引脚IR2上,两片级联处理15级中断。
(6)15级中断的中断号分配:

IRQ0 08H IRQ1 09H
IRQ2 0aH IRQ3 0bH
IRQ4 0cH IRQ5 0dH
IRQ6 0eH IRQ7 0fH
IRQ8 70H IRQ9 71H
IRQ10 72H IRQ11 73H
IRQ12 74H IRQ13 75H
IRQ14 76H IRQ15 77H
(7)两片8259A的端口地址分配为:
主片端口为:20H(偶地址A0=0),21H(奇地址A0=1)
从片端口为:0A0H(偶地址A0=0) ,0A1H(奇地址为A0=1)
2、初始化8259A主片解析:
根据以上硬件连接,系统上电后,对8259A初始化的程序段为:
(1)ICW1的功能:

MOV AL,11H
A7、A6、A5:全为0
D4:为1
D3为0:边沿触发
D1为0:级联
D0为1:需要ICW4
所以这句话的意思是:边沿触发,级联(多片),需要ICW4
(2)ICW2的功能:

MOV AL,8
相当于将D3置高电平,代表中断号的高五位。
(3)主片的ICW3:

MOV Al,04H
相当于将主片的IR2上接从片。
(4)ICW4:

MOV AL,01H
D4:特殊全嵌套方式
D3、D2:非缓冲方式
D1:非自动结束中断
D0:处理器选择
所以这句话的意思是:非缓冲,全嵌套,非自动结束中断
3、初始化8259A的从片解析:
(1)ICW3:


3、级联情况下主片初始化与从片初始化的异同:

4、初始化的程序段:
INTA00 EQU 020H ;8259A主片端口(A0=)
INTA01 EQU 021H ;8259A从片端口(A1=)
... ...
MOV AL,11H ;ICW1
OUT INTA00,AL
JMP SHORT $ + MOV AL, ;ICW2
OUT INTA01,Al
JMP SHORT $ + MOV Al,04H ;ICW3,主片的 IR2接上从片
OUT INTA01,Al
JMP SHORT $ + MOV AL,01H ;ICW4
OUT INTA01,Al
... ... INTB00 EQU 0A0H ; 8259A从片端口(A0=)
INTB01 EQU 0A1H ; 8259A从片端口(A0=)
... ...
MOV AL,11H
OUT INTB00,Al
JMP SHORT $ + MOV AL,70H
OUT INTB01,Al
JMP SHORT $ + MOV Al,02H ;从片接主片的 IR2
OUT INTB01,Al
JMP SHORT $ + MOV AL,01H
OUT INTB01,Al
... ...
8259A的初始化(多片)的更多相关文章
- 8259A的初始化(单片)
1.单片8259A的初始化流程图: 在单片的初始化中不需要ICW3,因为ICW3是指明主片和从片的连接情况的. 2.程序解析: (1)ICW1 MOV AL,13H (2)ICW2 MOV AL,08 ...
- 8259A工作原理描述
通过初始化编程向8259A写入相应的初始化命令ICW,可以使芯片处于一个规定的基本工作方式,并在此方式下进行工作.8259A的初始化命令字共有4个ICW1-ICW4,进行初始化时要求ICW1-ICW4 ...
- Linux 中断详解 【转】
转自:http://blog.csdn.net/tiangwan2011/article/details/7891818 原文地址 http://www.yesky.com/20010813/1921 ...
- 理解Linux中断 (1)【转】
转自:http://blog.csdn.net/tommy_wxie/article/details/7425685 版权声明:本文为博主原创文章,未经博主允许不得转载. 一直认为,理解中断是理解内核 ...
- linux驱动(续)
网络通信 --> IO多路复用之select.poll.epoll详解 IO多路复用之select.poll.epoll详解 目前支持I/O多路复用的系统调用有 select,psel ...
- ucore-lab1-练习1report
练习1 report 问题1:OS镜像文件ucore.img是如何一步一步生成的(需要比较详细地解释Makefile中的每一条相关命令和命令参数的含义,以及说明命令导致的结果)? GNU make是一 ...
- 8086实时时钟实验(一)——《x86汇编语言:从实模式到保护模式》05
1.代码清单 ;代码清单9-1 ;文件名:c09_1.asm ;文件说明:用户程序 ;创建日期:2011-4-16 22:03 ;=================================== ...
- 2017-2018-1 20179215《Linux内核原理与分析》第五周作业
一.视频学习 1.系统调用的三层皮:xyz(API).system call(中断向量).sys_xyz(不同种类的服务程序). 2.Libc库定义个一些API引用了封装例程(wrapper rout ...
- oslab oranges 一个操作系统的实现 实验四 认识保护模式(三):中断异常
实验目的: 理解中断与异常机制的实现机理 对应章节:第三章3.4节,3.5节 实验内容: 1. 理解中断与异常的机制 2. 调试8259A的编程基本例程 3. 调试时钟中断例程 4. 建立IDT,实现 ...
随机推荐
- Loj #3111. 「SDOI2019」染色
Loj #3111. 「SDOI2019」染色 题目描述 给定 \(2 \times n\) 的格点图.其中一些结点有着已知的颜色,其余的结点还没有被染色.一个合法的染色方案不允许相邻结点有相同的染色 ...
- Loj #2529. 「ZJOI2018」胖
Loj #2529. 「ZJOI2018」胖 题目描述 Cedyks 是九条可怜的好朋友(可能这场比赛公开以后就不是了),也是这题的主人公. Cedyks 是一个富有的男孩子.他住在著名的 The P ...
- 改写URL的查询字符串QUERY_STRING[URL重定向问号问题](转)
查询字符串是指URL请求中"问号"后面的部分.比如,http://mysite/?foo=bar 中粗体部分就是查询字符串,其中变量名是foo,值是bar. 'last|L' (最 ...
- MySQL的统计总数count(*)与count(id)或count(字段)的之间的各自效率性能对比
执行效果: 1. count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和cou ...
- j2ee的容器:web容器和ejb容器的概念
在J2EE中,容器充当的是中间件的角色. 两种主要容器的概念 Web容器 给处于其中的应用程序组件(JSP.Servlet)提供一个环境,使得JSP,Servlet能直接和容器中的环境变量.接口交互而 ...
- react的模型:react是如何工作的?
1.jsx:语法模型,语句构建模型: 2.组件:集合模型,组件管理: 3.vdom:分层模型.渲染管理模型: 4.flux:管道模型.数据模型,状态管理模型: 整体上是一个UI系统从上到下的构建: f ...
- 深入V8引擎-默认Platform之mac篇(1)
又到了常规的堆砌代码凑文章字数环节,很多API我就直接贴官方的英文释义,个人翻译其实有时候并不是很准确,搞错了甚至会误导,还是尽量自己去理解. 首先看看入口方法. std::unique_ptr< ...
- Python学习笔记之使用 python -m SimpleHTTPServer 快速搭建http服务
0x00 概述 搭建FTP,或者是搭建网络文件系统,这些方法都能够实现Linux的目录共享.但是FTP和网络文件系统的功能都过于强大,因此它们都有一些不够方便的地方.比如你想快速共享Linux系统的某 ...
- 设置环境变量遇到的难题,cmd管理员方式与普通方式的区别,通过C#代码设置环境变量
在使用mingw64的过程中,需要手工添加环境变量,作为一个懒人,这怎么可以呢?于是想用命令的方式实现,结果遇到问题了,死活实现不了, 之前用过TDM-GCC,人家的安装完就可以用,还有试用过rust ...
- json串处理2
请求百度地址坐标:http://api.map.baidu.com/location/ip?ak=y0Yb5ZgGK9blTDbR7Dwh9jGtn6X1YE48&coor=bd09ll&am ...