汇编语言程序设计第八章输入输出程序设计.ppt
《汇编语言程序设计第八章输入输出程序设计.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计第八章输入输出程序设计.ppt(59页珍藏版)》请在三一办公上搜索。
1、第八章 输入输出程序设计,河南师范大学计算机与信息技术学院,2,2023/3/5,本章内容提要,河南师范大学计算机与信息技术学院,3,2023/3/5,8.1 I/O设备的数据传动方式,河南师范大学计算机与信息技术学院,4,2023/3/5,8.1.1 CPU与外设,与CPU进行数据交换的,除了存储器外,还有输入输出设备(统称为外设)。,输入IN和输出OUT指令,可以从外设读取数据和向外设提供数据。,由于外设种类繁多,其工作原理、数据格式、操作时序等各异,所以在处理器与外设之间还有一个协调两者数据传送的逻辑电路,称为输入输出(I/O)接口电路。,处理器并不直接操纵外设,而是通过I/O接口来控制
2、外设。,河南师范大学计算机与信息技术学院,5,2023/3/5,I/O接口电路中的寄存器,I/O接口电路呈现给程序员的,是各种可编程寄存器。,这些寄存器可以分成三类:,数据寄存器它保存和处理与外设间交换的数据;控制寄存器处理器通过它对外设进行控制,也称命令寄存器;状态寄存器外设的当前工作状态通过它向处理器提供。,在涉及外设操作的输入输出程序中,各种寄存器以I/O地址(端口)体现;对应三类寄存器分别称为:数据端口、控制端口、状态端口。,河南师范大学计算机与信息技术学院,6,2023/3/5,CPU与外设数据传送方式,程序直接控制传送方式,程序查询I/O方式,中断传送方式,直接存储器存取(DMA)
3、方式,河南师范大学计算机与信息技术学院,7,2023/3/5,8.1.2 直接存储器存取(DMA)方式,主要由硬件DMA控制器实现其传送功能。,DMA(direct memory access)方式,也称为成组数据传送方式。,主要用于一些高速的I/O设备。如磁带、磁盘、A/D等设备。,传送数据时,每个字节一到达端口,就直接从接口送到存储器;同样,接口和它的DMA控制器也能直接从存储器取出字节并把它送到I/O设备去。,河南师范大学计算机与信息技术学院,8,2023/3/5,DMA工作原理,DMA控制器(intel 8237A)一般包括四个寄存器:控制寄存器状态寄存器地址寄存器字节计数器,在信息传
4、送前,应初始化这些寄存器。地址寄存器要传送的数据块首地址;字节寄存器要传送的数据长度(字节数);状态寄存器控制字,指出数据是输入还是输出,并启动DMA操作。,每个字节传送后,地址寄存器加1,字节计数器减1。,河南师范大学计算机与信息技术学院,9,2023/3/5,DMA传送步骤,由系统完成以下步骤:,DMA控制器向CPU发出HOLD信号,请求使用总线。CPU发出响应信号HOLD给DMA控制器,并将总线让出,这时CPU放弃了对总线的控制,而DMA控制器获得了总线控制权。传输数据的存储器地址(在地址寄存器中)通过总线发出。传输的字节数通过数据总线进行传送。地址寄存器加1,以指向下一个要传送的字节。
5、字节计数器减1。如字节计数器非0,转向第3步。否则,DMA控制器撤销总线请求信号HOLD,传送结束,河南师范大学计算机与信息技术学院,10,2023/3/5,8.2 程序直接控制I/O方式,河南师范大学计算机与信息技术学院,11,2023/3/5,8.2.1 I/O端口,80 x86中,I/O端口独立编址,允许设置64K(65535)个8位端口,或32K(32768)个16位端口。,CPU和内存通过I/O端口与外设进行通信。,表8.1列出了部分端口地址(十六进制)。,河南师范大学计算机与信息技术学院,12,2023/3/5,8.2.2 I/O指令,IN/OUT指令,即可传送字节又可传送字,使用
6、的寄存器必须是AL或AX。,直接寻址:寻址0255号端口。,间接寻址:所有端口,使用DX寄存器。,INAX,28HMOVDATA_WORD,AX,INAL,27HTESTAL,00000100HJNZERROR,MOVDX,126HINAL,DX;端口126HORAL,80H;第7位控制成组数据传送OUTDX,AL,河南师范大学计算机与信息技术学院,13,2023/3/5,8.2.3 I/O程序举例,例8.1 发声子程序SOUND,例8.2查询方式打印字符程序PRT_CHAR,例8.3查询方式控制数据输入,河南师范大学计算机与信息技术学院,14,2023/3/5,8.3 中断传送方式,河南师范
7、大学计算机与信息技术学院,15,2023/3/5,中断的相关概念,中断是CPU和外设进行数据传送的有效办法。它可以避免因反复查询外设状态而浪费的时间,从而提高CPU的效率。,中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。,中断源引起中断的事件。,外部中断(硬件中断)由外设控制器或协处理器引起的中断。,内部中断(软件中断)由程序中安排的中断指令INT产生的中断,或由CPU的某些错误结果产生的中断。,8080/8088的中断源如图8.3所示。,河南师范大学计算机与信息技术学院,16,2023/3/5,8.3.1 8086的中断分类,软件中断,硬件中断,河南师范大学计算机与信息技术学
8、院,17,2023/3/5,1.软件中断,软件中断又称内中断。,它通常由三种情况引起:,由中断指令INT引起;,由于CPU的某些错误引起;,为调试程序(DEBUG)设置的中断。,河南师范大学计算机与信息技术学院,18,2023/3/5,(1)中断指令INT引起的内中断,CPU执行完一条INT n指令后,会立即产生中断,并调用系统中相应的中断处理程序来完成中断功能,n指出中断类型号。,INT指令可以指定00FFH中的任何类型号。,除系统占用的类型号之外,用户还可利用为用户保留的类型号扩充新的中断处理功能。,INT n、INTO、除法错中断都不能被禁止,而且比任何外部中断的优先级都高。,河南师范大
9、学计算机与信息技术学院,19,2023/3/5,(2)处理CPU某种错误的中断,除法错中断:INT 0 在执行除法时,如果除数为0或商超过了寄存器所能表达的范围,则产生一个类型为0的中断。,溢出中断:INTO中断类型号为4 若溢出标志OF=1,则产生溢出中断;否则,不产生中断,CPU继续运行原程序。该中断的处理程序,主要是打印出一个错误信息,在处理结束后,不返回原程序继续执行,而是把控制权交给操作系统。如:ADDAX,VALUEINTO;测试加法溢出,河南师范大学计算机与信息技术学院,20,2023/3/5,(3)为调试程序(DEBUG)设置的中断,单步中断:为寻找程序中的问题,进行单步工作(
10、一次只执行一条指令)。类型号为1。当单步标志位TF1时,每条指令执行后,CPU会自动产生单步中断。使用单步中断可以逐条指令地跟踪程序的流程,观察CPU每执行一条指令后,各个寄存器及有关存储单元的变化,从而指出和确定产生错误的原因。,断点中断:将程序分段,为每段设置一个断点。中断类型号为3。当CPU执行到断点时便产生中断,可以检查各寄存器及有关存储单元的内容。断点可以设置在程序的任何的地方。,河南师范大学计算机与信息技术学院,21,2023/3/5,2.硬件中断,硬件中断又称外中断。,硬件中断主要有两种来源:,非屏蔽中断(NMI)为电源错、内存或I/O总线的奇偶等异常事件的中断保留的。中断类型号
11、为2。可屏蔽中断来自各种外设的中断。由外设的请求引起的中断。,可屏蔽中断受中断标志IF控制;非屏蔽中断和IF位无关。,河南师范大学计算机与信息技术学院,22,2023/3/5,可屏蔽中断,从外设发出中断请求到CPU响应中断,有两个控制条件起决定性作用:,该外设的中断请求是否屏蔽由中断屏蔽寄存器(IMR)控制。CPU是否允许响应中断由标志寄存器(FLAGS)中的中断允许位IF控制。,河南师范大学计算机与信息技术学院,23,2023/3/5,中断屏蔽寄存器,中断屏蔽寄存器的端口地址是21H,如图8.4所示。,中断屏蔽寄存器可分别控制某个可屏蔽中断源。,在编写中断程序时,应在主程序的初始化部分设置好
12、中断屏蔽寄存器,以确定允许用中断方式工作的外部设备。,;系统重设键盘中断INAL,21HMOVAL,11111101BOUT21H,AL,河南师范大学计算机与信息技术学院,24,2023/3/5,控制CPU的中断允许标志IF,CPU是否响应中断还与中断允许标志IF有关。,IF=0,CPU禁止响应任何外设的中断(关中断);,IF=1,允许CPU响应外设的中断请求(开中断)。,中断允许标志IF是控制所有可屏蔽中断的。,当任何类型的中断发生时,当前的FLAGS要入栈保存,然后清除IF位,进入中断处理程序,如果允许在一个中断处理程序的执行过程中发生硬中断,则必须用一条STI指令开中断。,当中断返回时,
13、恢复了原FLAGS的值,其中IF=1,则允许硬中断再次发生。,STI设置中断允许位(IF=1)CLI清除中断允许位(IF=0),河南师范大学计算机与信息技术学院,25,2023/3/5,中断命令寄存器,在一次中断处理结束之前,还应给8259A的可编程中断控制器的中断命令寄存器发出中断结束命令(EOI:end of interrupt),否则以后将屏蔽掉对同级中断或低级中断的处理。,中断命令寄存器的I/O端口地址为20H(如图8.4所示)。,在中断处理过程中,也可利用EOI命令清除当前中断请求,以响应同级或低级中断。,;结束硬件中断MOVAL,20HOUT20H,AL,河南师范大学计算机与信息技
14、术学院,26,2023/3/5,8.3.2 中断向量表,每个中断都有一个中断类型号。,80 x86可处理256种类型的中断,类型号为00FFH。,中断向量表就是各类型中断处理程序的入口地址表。,存储器的最低1.5KB,从00005FFH为系统占用,其中,最低的1KB,从0000003FFH存放中断向量表。,256个中断向量,每个中断向量占4个字节。,每类中断向量的地址中断类型号4。,图8.5给出了中断向量表。表8.2给出了中断向量表地址分配。图8.6展示了中断操作步骤。,河南师范大学计算机与信息技术学院,27,2023/3/5,中断操作步骤,中断操作步骤:,取中断类型号;计算中断向量地址;取中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 第八 输入输出

链接地址:https://www.31ppt.com/p-2940330.html