第六章 汇编语言(精品).ppt
《第六章 汇编语言(精品).ppt》由会员分享,可在线阅读,更多相关《第六章 汇编语言(精品).ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章 输入输出及中断处理 1、概述 如何利用汇编程序实现主机与外设之间进行信息交换?一、CPU与I/O设备之间的数据传送方式根据外设的性能,采用不同的信息交换方式 无条件传送方式微机提供4种传送方式 查询传送方式 中断传送方式 直接存储器传送方式(DMA)从速度看:无条件传送方式,与DMA方式,适用主机与高速外设之间传送 查询方式与中断传送方式:适用于主机与低速外设之间传送 从采用的技术来看:无条件传送方式与查询传送方式:采用端口技术 中断传送方式:采用中断技术 DMA方式:采用通道技术(由于涉及复杂的通道设备,本章不 介绍此种传送)2汇编语言程序设计 从传送的信息单位看 无条件、查询和中断
2、传送方式:每次传送一个信息单位的数据 (字或字节)DMA方式:一次传送一组信息(如一块512B)注:端口技术是主机与外设之间传送信息最基本的技术二、主机与外设传送的接口与信息 1、端口与接口 每台外设通过一个硬件接口与主机的端口相连,并交换信息 输入 输出接口在外设中,端口在主机中 设备状态寄存器每台外设有一个接口,接口组成:设备控制寄存器 数据寄存器 CPU内存I/O存储空间接口 I/O操作3汇编语言程序设计端口(I/O存储空间)地址:0000H0FFFFH,容量:64KB 对I/O空间的访问,只能用IN /OUT指令访问,其他指令无效接口与端口的连接:每台外设接口种三个寄存器在I/O空间中
3、被指定一固定的地址编 (即为端口地址),CPU通过不同的地址编码来选择外设 *外设接口在端口中固定的地址,可查随机手册获得2、外设与主机交换的信息 控制信息 状态信息 数据 三种信息分别存放在接口的三种寄存器中 (1)控制信息:CPU将控制信息输出到对应外设接口的控制寄存器中,告诉外设应做什么工作,如:I/O设备的启动和停止信号等4汇编语言程序设计 (2)状态信息:从外设状态寄存器输入到对应的端口中,便于 CPU了解设备的状态,如:输入设备:是否准备好的状态 输出设备:“忙”“闲”状态 (3)数据:外设与主机交换的信息:(字或字节数据,视接口 数据寄存器宽度而定)数据分三类:数字量:二进制形式
4、的数字量 开关量:一位二进制表示的量,反映状态,开关的开合,停启等 模拟量:模/数 或数/模转换量5汇编语言程序设计2、程序直接的I/O传送方式 无条件传送方式:不查询外设的状态;直接传送控制 寄存器或数据寄存器的信息。特点:CPU与外设并行工 作 查询传送方式:查询外设状态,决定是否传送信息。特点:CPU与外设串行工作一:IN和OUT指令 IN 外设 主机 OUT 不影响标志位 提供对字和字节操作的两种方式1、输入指令IN 功能:从外设寄存器对应的端口取信息送AL或AX中 格式规定 长格式:若端口地址在00FFH(0255)中,可将地址直接写在 指令中 短格式 :若端口地址在(100H0FF
5、FFH)中,要求将地址=DX 然后再传送信息 6汇编语言程序设计 IN 的格式长格式:IN AL,PORT(字节)(PROT 0,0FFH);(PORT)=AL,直接寻址 IN AX,PORT(字);(PORT+1,PORT)=AX短格式 IN AL,DX(字节);(DX)=AL IN AX,DX(字);(DX+1,DX)=AX如:IN AX,28H;(29H,28H)=AX MOV DAT,AX ;(AX)=DAT如:MOV DX,3FCH IN AX,DX ;(3FDH,3FCH)=AX2、输出指令OUT 功能:把(AX)或(AL)送指定的外设寄存器中长格式:OUT PORT,AL(字节)
6、;(AL)=PORT OUT PORT,AX(字);(AX)=PORT+1,PORT 短格式 OUT DX,AL(字节);(AL)=DX OUT DX,AX(字);(AX)=DX+1,DX 7汇编语言程序设计 如:OUT 5,AL;(AL)=5 MOV DX,255H OUT DX,AX ;(AX)=256H,255H二、无条件传送方式的I/O程序设计 特点:不查询外设的状态 利用IN或OUT指令在端口上编程例:扬声器发声程序:通过I/O指令使扬声器的控制寄存器(端口地址为61H)的第一位交替为0和1,使脉冲电流通过或断开发出声音。端口地址:61H 7 1 0 屏蔽振荡器 1/0 0与门放大器
7、8汇编语言程序设计STACK SEGMENT STACK DB 200 DUP(0)STACK ENDSPR SEGMENT ASSUME CS:PR,SS:STACKSTART:MOV DX,100 IN AL,61H AND AL,11111100BSOUND:XOR AL,2 OUT 61H,AL MOV CX,140HWAIT:LOOP WAIT DEC DX JNZ SOUND MOV AH,4CH INT 21H PR ENDS END START9汇编语言程序设计三、查询传送方式I/O程序设计 特点:测试端口中设备状态寄存器的状态 CPU 等待外设工作 1、查询外设状态的例子 如
8、:输入设备 状态寄存器 7 0 “READY”d7=1 准备好 d70未准备好 A:IN AL,STATUS ;取状态寄存器端口中的内容=AL TEST AL,80H JZ A IN AL,DAT_PORT;(DAT_PORT)=AL10汇编语言程序设计如:输出设备 状态寄存器 7 0 B:IN AL,STATUS ;取状态寄存器端口中的内容AL TEST AL,80H JZ B MOV AL,STORE ;STORE单元存贮待输出的一个字节数据 OUT DAT-PORT,AL;数据送输出设备2、例:利用打印机打印(AL)的数据说明:打印机 状态寄存器端口地址:379H 控制寄存器端口地址:3
9、7AH 数据寄存器端口地址:378H打印机的控制 7 3 2 1 0 选通位 1:允许读数据控制寄存器 0:正常 一直为1允许 脉冲位1脉冲电流 自动进行位(为1时)读数据请求 d7=0 忙“BUSY”d71 闲11汇编语言程序设计打印数据的控制:0,2,3位均为1,即 000011010DH送控制寄存器然后改送000011000CH,即置选通位为0,即切断数据通路 打印一个字符的子程序:PRINT PROC PUSH AX PUSH DX MOV DX,378H OUT DX,AL ;数据送端口378H中 MOV DX,379H WAT:IN AL,DX TEST AL,80H JZ WAT
10、 MOV DX,37AH MOV AL,0DH OUT DX,AL;选通打印字符 MOV AL,0CH OUT DX,AL;恢复选通 12汇编语言程序设计 POP DX POP AX RETPRINT ENDP主程序STACK SEGMENT STACK DB 200 DUP (?)STACK ENDSDATA SEGMENT BUF DB TEST PRINT C=$-BUFDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKS:MOV AX,DATA MOV DS,AX LEA BX,BUF MOV CX,CLA:MOV AL,BX I
11、NC BX CALL PRINT13汇编语言程序设计 LOOP LA MOV AH,4CH INT 21HPRINT PROC PRINT ENDPCODE ENDS END S14汇编语言程序设计3、中断传送方式中断技术的作用:提高CPU的效率,实现CPU与外设并行工作(不必等外设)提高系统处理突发事件的能力(如:掉电等)增强系统的灵活性和可靠性(实时地响应事件地请求)中断传送方式的编程任务 设置或取出中断向量 编制中断处理程序一、中断的概念中断:指使CPU中止正在执行的程序,而转去执行处理中断事件的程序,处理结束后,CPU又返回到原来程序的断点处继续往下执行。中断过程:中断请求、中断响应、
12、中断处理和中断返回中断系统:实现中断功能的软件及硬件装置,称为中断系统中断源:引起中断的原因或发生中断请求的来源中断请求:中断源申请CPU中断15汇编语言程序设计中断处理程序(中断服务程序):处理某个中断事件的程序 按中断的程序 中断处理程序 k K+1.断点16汇编语言程序设计 二、PC机的中断源 .中断源分为两类:内中断和外中断 .内中断:指来自CPU内部事件或说是由于程序在执行过程 中 发生了异常情况而引起的中断 处理特点:不受中断允许标志位IF的控制 .外中断:指来自CPU以外的事件而引起的中断。这些事 件与CPU正在执行的程序无关。如:I/O外设请求 引起等 处理特点:受中断允许标志
13、位IF的控制 需要中断控制器(如8259A)的支持和控制 共同的处理特点:需要中断向量表的支持17汇编语言程序设计 不可屏蔽中断NMI(2):硬件故障引起:如掉 外中断 电,内存出错等 可屏蔽中断:INR(80FH):外设请求引起 PC机 除法错(0):除数为0或商越界中断 溢出中断INT0(4):用INT0指令测试溢出 源 内中断 引起的中断 INT n 中断(n)(软中断):INT n引起的中断 单步中断(1):用DEBUG调试程序产生中断 断点中断:INT 3(3):由INT 3引起的中断8086/8088共有256种类型的中断 中断类型号 025518汇编语言程序设计三:中断向量表 1
14、、中断向量表的结构 中断向量表是支持实现中断处理的软件装置 中断向量表:中断类型号与对应的中断处理程序入口地址的 连接表。中断向量表占内存1KB,地址编码00000H003FFH00000H 中断处理程序第一条指令的EA 中断处理程序所在段首址00004H003FCH003FFH0号中断处理 程序的入口地址 -1号中断处理 程序的入口地址 -.255号中断处理 程序的入口地址 -IPCS19汇编语言程序设计每个中断类型号与对应的中断名 中断类型号 中断名 0 除法出错中断 1 单步中断 20H3FH DOS类型中断 .68H6FH 保留 .中断处理程序入口地址在中断向量表中首地址计算为 中断类
15、型号420汇编语言程序设计如:报警中断的类型号为4AH,在对应的中断处理程序入口地址在向量表中的地址为:4AH*4=128H 即:128H,129H 两个字节存放有报警中断处理程序第一条指令的EA 12AH,12BH .所在段的段首址21汇编语言程序设计2、中断类型号的获取(1)除法错、单步中断、断点中断、溢出中断和非屏蔽中分别由MPU芯片内的部件自动提供类型号04(2)软中断INT n 则从指令流中读得中断类型号n(3)外设中断INTR 则由8259A芯片提供中断类型号(非标 准外设则由用户自制电路,利用寄存器组件(如8212芯 片存放类型号,再由MPU响应中断将中断类型号送总 线从而获得)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六章 汇编语言精品 第六 汇编语言 精品
限制150内