汇编语言程序设计8_第1页
汇编语言程序设计8_第2页
汇编语言程序设计8_第3页
汇编语言程序设计8_第4页
汇编语言程序设计8_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第8 8章章 输入输出与中断控制输入输出与中断控制8.1 8.1 输入输出(输入输出(I/OI/O)口概述)口概述8.1.1 I/O 8.1.1 I/O 接口接口 在微机系统中,外部设备必须通过接口才能与在微机系统中,外部设备必须通过接口才能与系统总线相连,主要原因是内存速度快且种类较系统总线相连,主要原因是内存速度快且种类较少,而外部设备种类繁多且工作速度相差很大少,而外部设备种类繁多且工作速度相差很大。第第8 8章章 输入输出与中断控制输入输出与中断控制8.1 8.1 输入输出(输入输出(I/OI/O)口概述)口概述8.1.2 8.1.2 主机与外设之间交换数据的方式主机与外设之间交换数

2、据的方式1 1程序控制方式程序控制方式(1 1)无条件传送)无条件传送(2 2)条件传送)条件传送2. 2. 中断方式中断方式3. DMA3. DMA方式方式4. 4. 通道和通道和I/OI/O处理机方式处理机方式第第8 8章章 输入输出与中断控制输入输出与中断控制8.2 8.2 程序控制传送程序控制传送8.2.1 8.2.1 无条件传送方式无条件传送方式 无条件传送方式的特点:是当程序执行到无条件传送方式的特点:是当程序执行到I/OI/O指指令时,无条件地立即执行令时,无条件地立即执行I/OI/O指令相应的操作。指令相应的操作。 由于在这种方式下由于在这种方式下CPUCPU对外设进行输入输出

3、操作对外设进行输入输出操作时无需考虑外设的状态,故称之为无条件传送方时无需考虑外设的状态,故称之为无条件传送方式。式。第第8 8章章 输入输出与中断控制输入输出与中断控制8.2 8.2 程序控制传送程序控制传送8.2.2 8.2.2 程序查询方式程序查询方式 程序查询传送也称条件传送,是指在执行输入程序查询传送也称条件传送,是指在执行输入指令指令(IN)(IN)或输出指令或输出指令(OUT)(OUT)前,要先查询相应外部前,要先查询相应外部设备的状态,当输入设备处于准备好,输出设备设备的状态,当输入设备处于准备好,输出设备处于空闲状态时,处于空闲状态时,CPUCPU才执行输入输出指令与外设才执

4、行输入输出指令与外设交换信息,否则,交换信息,否则,CPUCPU循环查询,直到外设准备就循环查询,直到外设准备就绪为止。所以,程序查询方式比无条件传送方式绪为止。所以,程序查询方式比无条件传送方式可靠性更高。可靠性更高。第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式 中断:是一种使中断:是一种使CPUCPU中止正在执行的程序而转去中止正在执行的程序而转去处理特殊事件的操作。计算机正在执行某程序时,处理特殊事件的操作。计算机正在执行某程序时,如果突然发生了某些特殊事件,如果突然发生了某些特殊事件,CPUCPU会暂时停止当会暂时停止当前正在运行的程序,

5、转而去执行为处理该特殊事前正在运行的程序,转而去执行为处理该特殊事件而编写的程序,并在处理完毕后返回断点处继件而编写的程序,并在处理完毕后返回断点处继续执行被暂停的程序。续执行被暂停的程序。中断源:引起中断的事件。中断源:引起中断的事件。 可能是来自外设的中断请求,也可能是计算机可能是来自外设的中断请求,也可能是计算机的一些异常事故或其他内部原因。的一些异常事故或其他内部原因。第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.1 8.3.1 中断系统中断系统中断系统:为了实现中断的功能而设置的各种硬中断系统:为了实现中断的功能而设置的各种硬件和

6、软件。件和软件。 中断系统的硬件部分应能完成:中断系统的硬件部分应能完成: 接收中断源的中断请求;接收中断源的中断请求; 多个中断源同时提出中断请求时的优先权判定;多个中断源同时提出中断请求时的优先权判定; 向向CPUCPU发中断信号;发中断信号; 在在CPUCPU响应中断时向响应中断时向CPUCPU提供中断源的中断类型号。提供中断源的中断类型号。第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.1 8.3.1 中断系统中断系统 中断系统的软件部分应能完成:中断系统的软件部分应能完成: 在内存中准备好各个中断源所需的中断服务程在内存中准备好各个

7、中断源所需的中断服务程序,然后将存储在内存的中断服务程序首地址填序,然后将存储在内存的中断服务程序首地址填在指定位置的中断向量表中,以便在指定位置的中断向量表中,以便CPUCPU执行时能找执行时能找到它。到它。第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.1 8.3.1 中断系统中断系统中断处理程序或中断服务程序:事先编好的处理中断处理程序或中断服务程序:事先编好的处理引起中断事件的程序称为中断发生时正在执行的引起中断事件的程序称为中断发生时正在执行的程序。程序。断点:被中断的位置(将要响应中断时断点:被中断的位置(将要响应中断时IPIP,

8、CSCS内内容);容);保护现场:响应中断进入中断服务程序需要保存保护现场:响应中断进入中断服务程序需要保存相关寄存器内容。相关寄存器内容。恢复现场:执行完中断处理程序后恢复相关寄存恢复现场:执行完中断处理程序后恢复相关寄存器内容称为恢复现场。器内容称为恢复现场。第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.1 8.3.1 中断系统中断系统80868086的中断源分类:的中断源分类:1.1.内部中断(软中断)内部中断(软中断) 是是CPUCPU根据程序中的某条指令、运算状态或者软根据程序中的某条指令、运算状态或者软件对标志寄存器中某个标志位

9、的设置而产生的,件对标志寄存器中某个标志位的设置而产生的,从软件中断的产生过程来看,完全和硬件电路无从软件中断的产生过程来看,完全和硬件电路无关。关。第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.1 8.3.1 中断系统中断系统1.1.内部中断(软中断)内部中断(软中断) 引起内部中断的原因有三种:引起内部中断的原因有三种: 通过中断指令设置的中断(通过中断指令设置的中断(INT NINT N) 由计算机运算出错引起的中断由计算机运算出错引起的中断 除数为除数为0 0中断中断( (中断类型号为中断类型号为0)0) 溢出中断溢出中断 INTO

10、(INTO(中断类型号为中断类型号为4)4) 为调试程序而设置的中断为调试程序而设置的中断 单步中断单步中断 断点中断断点中断第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.1 8.3.1 中断系统中断系统2.2.外部中断(硬中断)外部中断(硬中断) 来自处理器外部的中断称为外部中断,又称为来自处理器外部的中断称为外部中断,又称为硬件中断。硬件中断。 可屏蔽中断可屏蔽中断 非屏蔽中断非屏蔽中断第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.1 8.3.1 中断系统中断系统80868086的中

11、断源分类:的中断源分类:中断类型:中断类型码(中断类型:中断类型码(00H-FFH00H-FFH)中断向量:中断程序入口地址中断向量:中断程序入口地址中断向量表:各个中断入口地址汇集中断向量表:各个中断入口地址汇集中断向量表位置中断向量表位置:00000H-003FFH00000H-003FFH第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.1 8.3.1 中断系统中断系统 中断类型与中断向量表之间的关系:中断类型与中断向量表之间的关系:各中断处理程序的入口地址按其类型号依次存放,各中断处理程序的入口地址按其类型号依次存放,每个入口地址占用四

12、个字节,两个低字节存放入每个入口地址占用四个字节,两个低字节存放入口地址的口地址的IPIP部分,两个高字节存放部分,两个高字节存放CSCS部分。部分。中断类型号中断类型号N N乘以乘以4 4,即可计算出相应的中断向量,即可计算出相应的中断向量地址,从该地址的内存单元中取出偏移地址和段地址,从该地址的内存单元中取出偏移地址和段地址分别放入地址分别放入IPIP和和CSCS,CPUCPU就可以转入相应的中断就可以转入相应的中断处理程序,即:处理程序,即:IP4IP4N+1N+1,4 4N N CS4CS4N+2N+2,4 4N+3N+3第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.

13、3 中断传送方式中断传送方式8.3.1 8.3.1 中断系统中断系统例如:假设在中断向量表中地址为例如:假设在中断向量表中地址为0034H0034H的内存单的内存单元存储内容为元存储内容为50H50H,0035H0035H中的内容为中的内容为12H12H,0036H0036H中的内容为中的内容为00H00H,0037H0037H中的内容为中的内容为30H30H,则,则INT 13INT 13的中断服务程序的入口地址。的中断服务程序的入口地址。 IP4IP413+113+1,4 413 =1250H13 =1250H CS4 CS413+313+3,4 413 +2=3000H13 +2=300

14、0H第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.2 8.3.2 中断向量表中断向量表第第8 8章章 输入输出与中断控制输入输出与中断控制8.3 8.3 中断传送方式中断传送方式8.3.3 8.3.3 中断处理程序中断处理程序 中断处理程序的结构模式如下:中断处理程序的结构模式如下: 保护现场:将保护现场:将CPUCPU内部相关寄存器的内容依次内部相关寄存器的内容依次压入堆栈(若不需要可省略)。压入堆栈(若不需要可省略)。 开放中断(开放中断(STISTI),允许级别较高的中断进入。),允许级别较高的中断进入。 中断处理程序,这是中断处理程

15、序的主要部分。中断处理程序,这是中断处理程序的主要部分。 恢复现场,将所保存在堆栈中的寄存器内容弹恢复现场,将所保存在堆栈中的寄存器内容弹出堆栈。出堆栈。 中断返回(中断返回(IRETIRET)8.4 DOS8.4 DOS与与BIOSBIOS中断中断 在主机系统主板上较高地址的在主机系统主板上较高地址的ROMROM中驻留着基本中驻留着基本输入输出系统(输入输出系统(BASIC INPUT/OUTPUT SYSTEM BASIC INPUT/OUTPUT SYSTEM BIOSBIOS)程序,它提供了系统加电自检、引导并装)程序,它提供了系统加电自检、引导并装入操作系统、主要入操作系统、主要I/

16、OI/O设备的中断处理等功能程序。设备的中断处理等功能程序。用户不必了解这些中断服务程序的内部结构就可用户不必了解这些中断服务程序的内部结构就可以使用这些中断服务程序。以使用这些中断服务程序。 DOS DOS是是PCPC机上重要的操作系统,是由机上重要的操作系统,是由BIOSBIOS在开机在开机后自动装入内存的,后自动装入内存的, 它和它和BIOSBIOS一样包括有近百个一样包括有近百个设备管理、目录管理和文件管理程序,是一个功设备管理、目录管理和文件管理程序,是一个功能齐全、使用方便的中断例行程序的集合。能齐全、使用方便的中断例行程序的集合。 使用使用DOSDOS操作比使用相应功能的操作比使

17、用相应功能的BIOSBIOS操作更简易,而且操作更简易,而且对硬件的依赖性更少些。对硬件的依赖性更少些。8.4 DOS8.4 DOS与与BIOSBIOS中断中断8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用8.4.2 BIOS8.4.2 BIOS功能调用功能调用8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用 系统功能调用是系统功能调用是DOSDOS为用户提供的常用中断处理为用户提供的常用中断处理程序,可在汇编语言程序中直接用程序,可在汇编语言程序中直接用INT 21HINT 21H调用这调用这些子程序,这些子程序给用户编程带来很大方便。些子程序,这些子程序给用户编程

18、带来很大方便。 1 1主要功能主要功能设备管理设备管理( (如键盘、显示器、打印机、磁盘等如键盘、显示器、打印机、磁盘等) )文件管理和目录操作文件管理和目录操作其它管理其它管理( (如内存、时间、日期等如内存、时间、日期等) )8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用2 2调用方法调用方法其调用方法是:其调用方法是: 功能号功能号AHAH 入口参数入口参数指定寄存器指定寄存器 INT 21H INT 21H8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用(1)(1)键盘输入键盘输入(1(1号调用号调用) )

19、格式格式:MOV AH,1MOV AH,1 INT 21H INT 21H功 能功 能 : 等 待 从 键 盘 输 入 一 个 字 符 , 如 果 是: 等 待 从 键 盘 输 入 一 个 字 符 , 如 果 是( (CTRL)+(BreakCTRL)+(Break) ),则退出程序,则退出程序, , 返回到返回到DOSDOS状态;状态;否则,将字符的否则,将字符的ASCASC码送入寄存器码送入寄存器ALAL中中( (出口参出口参数数) ),并送显示器显示。,并送显示器显示。8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用(2)

20、(2)键盘输入字符串键盘输入字符串(10(10号调用号调用) )格式格式:LEA DX,LEA DX,缓冲区区首偏移地址缓冲区区首偏移地址( (入口参数入口参数) ) MOV AH,10 MOV AH,10 INT 21H INT 21H功能功能:等待从键盘输入一个字符串,送入:等待从键盘输入一个字符串,送入DS:DXDS:DX指指向的输入缓冲区中,向的输入缓冲区中, 并送显示器显示。并送显示器显示。8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用(2)(2)键盘输入字符串键盘输入字符串(10(10号调用号调用) )说明说明:(

21、1)(1)输入缓冲区的格式:输入缓冲区的格式:名字名字 DBDB要输入的字符个数要输入的字符个数+1+1DBDB输入后返回的实际输入的字符个数输入后返回的实际输入的字符个数 DBDB缓冲区大小数值缓冲区大小数值 DUP(DUP(值值) ) 0 0字节为缓冲区的大小,不能是,最大为字节为缓冲区的大小,不能是,最大为255255 第第1 1字节存放实际输入字符的个数;字节存放实际输入字符的个数; 第第2 2字节开始,存放输入的字符,最后以回车结字节开始,存放输入的字符,最后以回车结束;回车符也送入缓冲区,但不计入输入字符个束;回车符也送入缓冲区,但不计入输入字符个数之中数之中( (实际最多只能输入

22、实际最多只能输入254254个字符个字符) );如果输入;如果输入字符的个数超过了要输入的个数,则多余字符被字符的个数超过了要输入的个数,则多余字符被删除且喇叭响。删除且喇叭响。8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用(2)(2)键盘输入字符串键盘输入字符串(10(10号调用号调用) )说明说明:(2)(2)该缓冲区一定要在当前数据段中。该缓冲区一定要在当前数据段中。(3)(3)在汉字环境下可输入汉字,最多能输入在汉字环境下可输入汉字,最多能输入127127个个汉字。汉字。例例8.5 8.5 编程,从键盘输入一个字符,若

23、为编程,从键盘输入一个字符,若为YY,则从键盘输入一个字符串,结束;若为则从键盘输入一个字符串,结束;若为NN,则,则直接结束;若都不是,则循环再输入一个字符。直接结束;若都不是,则循环再输入一个字符。分析:分析:1 1号功能调用输入一个字符,号功能调用输入一个字符,1010号功能调用号功能调用输入一个字符串。输入一个字符串。8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用例例8.58.5DATADATA SEGMENTSEGMENTSTRSTR DBDB20,?,20 DUP(0)20,?,20 DUP(0)DATADATA

24、ENDSENDSCODECODE SEGMENTSEGMENTASSUME CS:CODE,DS:DATAASSUME CS:CODE,DS:DATASTART:MOV AX,DATASTART:MOV AX,DATAMOVMOV DS,AXDS,AXMOVMOV AH,4CHAH,4CHINTINT 21H21HCODECODE ENDSENDSENDEND STARTSTART8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用例例8.58.5LOP1:MOVLOP1:MOV AH,1AH,1INTINT 21H21HCMPCM

25、P AL,YAL,YJEJEIN_STRIN_STRCMPCMP AL,NAL,NJEJEEXITEXITJMPJMP LOP1LOP1IN_STR:LEA DX,STRIN_STR:LEA DX,STRMOVMOV AH,0AHAH,0AHINTINT 21H21HEXIT:EXIT:8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用(3)(3)显示输出显示输出(2(2号调用号调用) )格式格式:MOV DL,MOV DL,待显示字符的待显示字符的ASCASC码码( (入口参数入口参数) ) MOV AH,2 MOV AH,2

26、INT 21H INT 21H功能功能:如果:如果DLDL是是( (CTRL)+(BreakCTRL)+(Break) ),则退出程序,则退出程序,返回到返回到DOSDOS状态;否则,将状态;否则,将DLDL中的字符送显示器显中的字符送显示器显示。示。例例8.6 8.6 显示大写字符显示大写字符CC。MOVMOV DL,CDL,CMOVMOV AH,2AH,2INTINT 21H21H8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用(4)(4)显示字符串显示字符串(9(9号调用号调用) )格式格式:LEA DX,LEA DX,待

27、显示字符串串首的偏移地址待显示字符串串首的偏移地址;(;(入口参数入口参数) ) MOV AH,9 MOV AH,9 INT 21H INT 21H功能功能:将当前数据区中:将当前数据区中DS:DXDS:DX指向的以指向的以$为结为结尾的字符串送显示器显示。尾的字符串送显示器显示。8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用(4)(4)显示字符串显示字符串(9(9号调用号调用) )例例8.7 8.7 显示字符串显示字符串HOW ARE YOUHOW ARE YOU!。DATADATA SEGMENTSEGMENTSTRSTR DBDBHOW ARE YOU!$HOW ARE YOU!$DATADATA ENDSENDSCODECODE SEGMENTSEGMENTASSUME CS:CODE,DS:DATAASSUME CS:CODE,DS:DATASTART:MOV AX,DATASTART:MOV AX,DATAMOVMOV DS,AXDS,AX8.4.1 DOS8.4.1 DOS系统功能调用系统功能调用3 3常用的常用的DOSDOS系统功能调用系统功能调用(4)(4)显示字符串显示字符串(9(9号调用号调用) )例例8.7 8.7 显示字符串显示字符串H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论