黄老师 发表于 2013-8-20 09:21:19

大工13春汇编语言序设计辅导资料十五

大工13春汇编语言序设计辅导资料十五
主    题:第八章输入输出程序设计(第1-2节)
学习时间:2013年7月8日-7月14日
内    容:
第八章 输入输出程序设计 概述
本周学习输入输出程序设计,我们需要学习I/O程序设计,中断传送方式,包括中断向量,中断过程等问题。第八章内容实际上可以看作是汇编语言程序设计的应用,是结合硬件基础和语言编程的应用,另外在实用方面也是很值得学习的,硬件开发最终都要通过接口来实现功能。
第1节 I/O设备的数据传送方式
1)CPU与外设:CPU和外设之间要交换控制,状态和数据三种信息,但真正要交换的是数据信息,这些信息可以是串行的也可以是并行的,相应的外设接口要用串行接口和并行接口。
2)直接存储器存取DMA方式:也称为成组数据传送方式,主要用于一些高速I/O设备,这种方式能使I/O设备直接和存储器进行成批数据的快速传送。这项功能主要靠DMA控制器完成的。
3)DMA控制器:DMA控制器主要包括四个寄存器:控制寄存器,状态寄存器,地址寄存器,字节计数器,这些寄存器在信息传送之前应进行初始化。
   4)DMA方式的步骤如下:
 DMA控制器向CPU发出HOLD信号,请求使用总线
 CPU发出响应信号HOLD给DMA控制器,并将总线让出,这时CPU放弃总线控制权,DMA控制器获得总线控制权
 传送数据的存储器地址(地址寄存器中)通过地址总线发出
 传输的数据字节通过数据总线进行传输
 地址寄存器增1,指向下一要传送的字节
 字节计数器减1
 如字节计数器非0,转向第3步
 否则,DMA控制器撤销总线请求信号HOLD,传送结束
   5)I/O端口:计算机的外设和存储设备都是通过接口连接到系统总线上的,每个接口都有一组寄存器组成,包括数据寄存器,状态寄存器,命令寄存器这些寄存器都分配一个称为I/O端口的地址编码,计算机的CPU和内存就是通过这些端口和外部设备进行通信的。
   6)I/O地址空间:80x86中,I/O端口编址在一个独立的地址空间中,这个空间允许设置64K个8位端口或32K个16位端口,但实际上微机只用到了空间中很小的一部分。
   7)I/O指令:I/O指令是CPU与外设进行通信的最基本途径。第三章中已经介绍了IN和OUT指令用于I/O通信,它们都可以传送字节或字,都有直接端口寻址和间接端口寻址两种方式,举例如下:
             IN AL,PORT               直接端口寻址,字节
             IN AX,PORT               直接端口寻址,字
             IN AL,DX                   间接端口寻址,字节
             IN AX,DX                   间接端口寻址,字
      注意:间接端口寻址的时候,实际上需要先对寄存器赋值,然后才使用间接端口寻址方式下的I/O指令,另外,I/O指令中使用的寄存器必须是AL或AX,举例如下:
            MOV DX,126H               DX赋值
            IN AL,DX                  间接端口寻址,字节输入
            OR AL,80H                   逻辑或
            OUT DX,AL                   间接端口寻址,字节输出
第2节 中断传送方式
   1)中断概念:中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作,它一直被大多数计算机所采用,是CPU和外部设备进行I/O通信的有效方法。
2)中断源:引起中断的事件称为中断源,它们可以来自外部,或来自计算机内部的某些原因。由外设控制器或协处理器引起的中断一般称为硬件中断或外中断,由中断指令INT引起的中断,或由CPU某些错误引起的中断称为内中断,中断源示意图如下:
      

说明:非屏蔽中断NMI,为电源错,内存或I/O总线的奇偶等异常事件准备,它不受中断允许标志IF的屏蔽,而且整个系统中只能有一个非屏蔽中断,其中断类型号是2;INTO指令是溢出中断指令;8259A是可编程中断控制器,它的8个IR接口从IR0到IR7的中断优先级是从高到低排列的,中断优先级下面介绍。
3)8086中断分类:
 内中断:包括
               中断指令INT引起
               CPU某些错误引起
               调试程序DEBUG设置的中断
说明:CPU执行完INT N中断,可以立即产生中断,并调用相应的中断处理程序来完成中断功能,中断指令的操作数N指出中断类型号。中断类型号可以指出中断程序在中断向量表中的入口地址,后续会介绍;
       CPU某些错误引起的中断包括除法错误,溢出中断INTO;
调试程序DUBUG设置的中断,它又包括单步中断和断点中断两种。
 外中断:包括
         非屏蔽中断NMI
         外部设备的中断请求,也即可屏蔽中断
说明:微机配置的外部设备一般有磁盘,显示器和各种打印机等,它们通过8259A可编程中断控制器和CPU相连,8259A可接收来自外设的中断请求信号,并把中断源的中断类型号送到CPU。中断允许位IF和中断屏蔽寄存器IMR决定CPU是否响应外设的中断请求,中断屏蔽寄存器的I/O端口地址是21H,其示意图如下:
      
说明:非屏蔽中断和IF位无关,非屏蔽中断类型号为2,CPU不能禁止非屏蔽中断。中断命令寄存器中的L2-L0三位指定IRO到IR7中最低优先级的中断请求,SL和R控制IR0到IR7的中断优先级顺序。
4)中断类型号:中断指令中的N就是中断类型号。
5)中断向量表:80x86中断系统能处理256种类型的中断,类型号为0到0FFH,每种类型的中断都由相应的中断处理程序来处理,中断向量表就是各种类型的中断处理程序的入口地址表,存储器中最低1KB,地址从0000到3FFH存放中断向量,中断向量表中的256项中断向量对应256种中断类型,每项占用四个字节,其中两个字节存放中断处理程序的段地址(高双字节),另两个字节存放偏移地址(低双字节)。中断类型号乘4可以算出其相应的中断程序入口地址:中断向量地址。
本周要求掌握的内容如下:
基本概念:I/O程序设计的重要性、DMA方式、DMA方式步骤、I/O端口、I/O地址空间、中断概念、中断源、中断源和中断向量表
基本理论:I/O设备和CPU的关系、DMA传送方式,I/O端口,理解中断的作用,会用中断类型号算中断向量地址
习题:
1、DMA控制器包括哪些寄存器:
(A)控制寄存器                   (B)状态寄存器
(C)地址寄存器                     (D) 字节计数器
               
                                                            
2、I/O指令中,直接端口寻址和间接端口寻址都只需要一条指令即可完成端口寻址。
                                                             (错)
3、I/O端口不包括哪些寄存器:
(A)数据寄存器                              (B)地址寄存器
(C)状态寄存器                           (C)命令寄存器
                                                            
页: [1]
查看完整版本: 大工13春汇编语言序设计辅导资料十五