• 【微机原理笔记】第 6 章 - 输入输出和中断技术


    微机原理笔记 - 主页

    第 6 章 输入输出和中断技术

    1. 概述

    1、输入输出系统

    ① 系统定义 (考点):外设、I/O 接口、管理设备。

    ② I/O 功能与作用:外设选择、外设管理、数据缓冲、信号(电平)转换

    2、I/O 分类

    • 数据口(I/O)
    • 状态口(I)
    • 控制口(O)

    3、寻址(编址方式)(考点)

    端口有两种编址方式:统一编址、独立编址

    统一编址 —— 存储映像的 I/O 寻址

    把外设接口与内存统一进行编址,各占据统一地址空间的不同部分。

    优点:指令强大。

    缺点:地址浪费。

    独立编址

    外设地址空间和内存地址空间相互独立。

    优点:地址使用充分。

    缺点:指令有两套,并且要硬件支持才可编程。

    大部分系统使用统一编址,但是 8086 系统使用独立编址。

    4、8086/8088 CPU 的 I/O 编址方式

    ① 可寻址的 I/O 端口数为 64K 个,地址范围为 0000H ~ FFFFH ,并采用独立编址。

    2. CPU 与外设通信的接口(简单)

    1、只需要选择的 I/O 就是简单的接口。

    2、输入用缓冲器/输出用锁存器 (考点)

    原因:外设比较快,CPU 比较慢,为了协调速度,要用到缓冲器和锁存器。

    单向缓冲器

    单向缓冲器选用 74LS244 输入缓冲器,双向缓冲器则是 245 。

    输出锁存器

    输出锁存器选用 273 ,下降沿锁存,并且没有三态门,373 则有三态门。

    3. 传送数据方式

    1、无条件传送方式

    CPU 直接与外设传送数据并不需要了解外设状态,认为外设已经准备就绪,直接与外设传送数据。

    优点:软件及接口硬件简单。

    缺点:只适用于简单外设。

    2、 查询传送方式

    必须查询外设状态,然后再决定是否与外设传送数据。

    优点:软件简单。

    缺点:CPU 利用率太低。

    3、中断方式

    分时传送,并行处理。

    优点:CPU 利用率高。

    缺点:软件复杂。

    4、直接存储器存取方式(DMA)

    外设直接与存储器进行数据交换,CPU 不再担当数据传输的中介者。

    优点:CPU 利用率最高。

    缺点:增加硬件,硬件复杂。

    四种传送方式(考点)

    四种传送方式是什么:无条件传送方式、查询传送方式、中断方式和 DMA 。

    CPU 利用率最高的传送方式是什么:DMA 。

    除了 DMA ,CPU 利用率最高的传送方式是什么:中断方式。

    4. 中断的概念

    1、引起 CPU 中断的事件 —— 中断源

    例如:

    数据传送 —— 请求输入输出数据,报告故障等。

    事故处理 —— 掉电、硬件故障、软件错误、非法操作、定时时间到等。

    2、中断源分为:外部中断、内部中断

    内部中断: CPU 内部执行程序时自身产生的中断。

    外部中断: CPU 以外的设备产生的中断(数据传送)。

    3、8086/8088 的外部中断信号:INTR、NMI

    INTR —— 可屏蔽中断请求,高电平有效,受IF标志的控制。执行完当前指令后CPU对它作出响应 INTA 。

    NMI —— 非屏蔽中断请求,上升沿有效,任何时候 CPU 都要响应此中断请求信号。

    4、中断定义

    所谓中断,是指这样一个过程:当CPU正在执行程序过程中,由于某一突然事件的发生,暂时中止正在执行的程序,转去处理突然发生的事件(执行中断服务程序),处理完毕,再返回原来被中止的程序继续运行。

    在这里插入图片描述

    5. 中断过程

    1、中断请求

    NMI: 不可屏蔽,系统中断,边沿请求。

    INTR: 可屏蔽,用户中断,电平请求。

    边沿请求: 遇到上升沿就中断,如果遇到毛刺干扰,也会被当做中断,所以抗干扰能力弱,但设计简单。

    电平请求: 遇到毛刺不会反应过来,只有遇到高电平才会中断,所以抗干扰能力强,但需要硬件支持。

    2、中断识别

    计算机中的中断源有很多,CPU 必须识别是哪一个设备产生中断。

    识别中断源有两个方法:

    软件查询(查询中断)

    IN AL,IPORT		;从输入接口取中断信息
    TEST AL,80H		;是0号设备请求吗?
    JNZ SEVO		;是,转0号设备服务程序
    TEST AL,40H		;否,是1号设备请求吗?
    JNZ SEVl		;是,转1号设备服务程序
    TEST AL,20H		;否,是2号设备请求吗?
    JNZ SEV2		;是,转2号设备服务程序
    TEST AL,10H		;否,是3号设备请求吗?
    JNZ SEV3		;是,转3号设备服务程序
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    矢量中断

    在这里插入图片描述

    硬件上需要能够提供矢量号:

    在这里插入图片描述

    3、中断判优

    中断优先级的控制方法:

    硬件判优 —— 链式判优、并行判优(中断向量法)

    软件判优 —— 顺序查询中断请求,先查询的先服务(即先查询的优先级别高)

    4、中断响应处理(两个考题)

    响应中断的条件(考点)

    • IF = 1
    • 当前指令执行完
    • 无总线请求

    相应处理(考点)

    • 发出 INTA帽 中断响应信号,获得向量
    • 保护 FR
    • 关中断 IF = 0
    • 断点保护 CS、IP
    • 获得入口地址,开始执行

    5、中断服务

    中断服务子程序要做的工作:

    • 保护现场

    • 开中断(STI)

    • 进行中断处理

    • 关中断(CLI)

    • 恢复现场

      iret: IP - CS - FR(按顺序返回)

      ret: IP - CS

    8088 CPU 可屏蔽中断的相应过程 (考点)

    在这里插入图片描述

    6. 8086/8088 中断系统

    1、中断分类

    (1)外部中断(硬件中断)

    • INTR:可屏蔽中断

    • NMI:不可屏蔽中断

    (2)内部中断(软件中断)

    • 除法溢出:类型号 0
    • 单步中断:类型号 1
    • 断电中断:类型号 3
    • 溢出中断:类型号 4
    • 软件中断:即 INT n 指令,类型号 n(0-32)

    2、中断向量表

    中断类型号和中断服务子程序的入口地址之间的关系**(考点)**

    在这里插入图片描述

    eg. INT 12H在中断矢量表中的物理地址?

    12H × 4 = 48 H

    eg. INT 8中断服务程序首地址在中断矢量表中的物理地址?

    8 × 4 = 32 = 20H

    3、中断向量表的初始化

    eg. 中断类型码为 48H 的中断处理子程序的名字为 INT48H ,编写程序段将该中断处理子程序的入口地址放入向量表。

    CLI
    MOV AX,0
    MOV DS,AX
    MOV AX,OFFSET INT48H
    MOV SI,48H×4
    MOV [SI],AX
    MOV AX,SEG INT48H
    MOV [SI+2],AX
    STI
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    eg. 若外设的中断类型号为 6BH ,则此中断类型号对应的中断矢量表地址为从 01ACH 开始的四个存储单元。设中断服务程序段地址是 1000H ,偏移地址为 2000H 。

    CLI		
    MOV   AX,,0
    MOV   DS,AX		;置数据段段基地址为0
    MOV   AX,2000H
    MOV   [6BH*4], AX	;对偏移地址为01AC的单元
    MOV   AX,1000H	;送双字
    MOV   [6BH*4+2], AX 
    STI
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4、区别

    INTR 和其它中断的区别 (考点)

    • 内部中断不需要执行从外部获得矢量
    • 内部中断不受 IF 的影响
    • 内部中断大部分可以预测

    5、8088 系统中各中断的优先级 (小考点)

    优先级从高到低顺序如下:

    • 内部中断(优先级最高)
    • NMI
    • INTR
    • 单步中断

    7. 8259A

    1、内部结构

    一共有 28 个管脚。

    初始化:2 个控制口,7 个控制字

    在这里插入图片描述

    2、命令字

    8259A 有 7 个命令字。

    (1)A0

    • 奇地址 —— 奇口

    在这里插入图片描述

    • 偶地址 —— 偶口

    在这里插入图片描述

    3、工作原理

    设置芯片的寄存器:通过命令口写入命令字

  • 相关阅读:
    NewStarCTF2023 Reverse方向Week3 ez_chal WP
    【已解决】Qt发送信号后,槽函数没有响应
    【linux命令讲解大全】033.Linux常用命令之atrm、colrm和hdparm
    MQTT.js
    深度学习基础--神经网络(2)
    【C++】基础知识点回顾 上:命名空间与输入输出
    OpenGL学习——16.多光源
    代码可读性,前置检查、注释及总结
    火狐拖放后,总会默认打开百度搜索,如果是图片,则会打开图片。
    探索信号处理:低通滤波器的原理与应用
  • 原文地址:https://blog.csdn.net/Newin2020/article/details/125468302