微机原理第6章 - 中断系统_第1页
微机原理第6章 - 中断系统_第2页
微机原理第6章 - 中断系统_第3页
微机原理第6章 - 中断系统_第4页
微机原理第6章 - 中断系统_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

1、本章主要内容,基本知识中断与异常、中断分类、实地址方式与保护方式下的中断*、中断过程、中断管理等 可编程中断控制器*8259A的内部结构及工作原理*、8259A的引脚信号、8259A的工作方式*、8259A的编程方法*、高级中断控制器 中断调用及其应用,第6章 中断系统,6.1 中断的基本知识,一、中断与异常 二、中断分类 三、实方式与保护方式下的中断 四、中断过程 五、外部中断源的管理,一、中断与异常,1.中断 2.异常 3.中断和异常的区别 4.异常的类型,什么是中断,所谓中断,是指处理器在执行正常程序过 程中,当出现某些异常情况或某个外部设 备请求时,处理器暂时中止正在执行的程 序,转而

2、去执行其特定的服务程序,并在 执行完服务程序后返回原来被中止的程序 处继续执行的过程。,什么是异常?,异常是指把因内部意外条件而改 变程序执行流程以报告出错情况和非 正常状态的过程称为异常中断(简称 异常)。,中断和异常有什么区别?,(1)中断处理异步发生的外部事件。 (2)异常处理同步发生的内部事件。 (3)硬件中断是作为外部事件的结果而发生的。 (4)中断是在当前指令执行完后才去执行服务程序的,在中断处理程序完成中断服务后,程序继续执行被中断指令之后的指令。,异常有哪几种类型?,(1)失效 (2)陷井 (3)终止,什么是失效,失效又称为故障(Faults):是在引 起异常的指令之前被检测和

3、处理。在执行 完失效对应的服务程序后,会返回到该失 效指令处,重新执行该指令。,什么是陷井?,陷井(Traps)是在引起异常的指令执行 之后才被报告,且服务程序完成后,返回到原 程序引起异常指令的下一条指令处继续向下执 行。 陷井与中断处理方法一样,但与失效不同,什么是终止?,中止(Abort)是一种不能确定引起异常指令确切位置的异常(有时称为夭折或失败)。,二、中断分类,内部中断或异常,1失效异常 2陷井异常 3中止异常,中断分类图,主要失效异常,除法出错、调试异常、界限检查、无效操作码、协处理器不存在、无效TSS、段不存在、堆栈段溢出、一般性保护错、页面出错、协处理器错(仅80286)、机

4、器检查(PentiumPentium 4)等。,主要陷井异常,系统中的主要陷井异常包括单步陷井、断点异常、溢出以及中断指令INT n等。,中断分类图,主要中止异常,系统中的主要中止异常包括双重故障(在执行一个异常处理程序中又出现另一个异常)、协处理器段溢出等。,中断分类图,外部中断,1不可屏蔽中断(NMI) 2可屏蔽中断(INTR),中断分类图,不可屏蔽中断,含义:不能用软件来控制是否允许中断的 一种外部中断。 常见NMI中断有: (1)电源掉电 (2)存储器检验出错 (3)总线奇偶错等。,中断分类图,可屏蔽中断,含义:可用软件控制是否允许中断的外部中断。即STI使IF=1,允许中断;CLI使

5、IF=0,禁止中断。 常见INTR中断有:所有外部设备中断如键盘、鼠标、打印机、显示器、声卡、CD-ROM等,中断分类图,三、实方式与保护方式下的中断,1.术语及概念 2.实方式下中断服务程序入口地址 3.保护方式下中断服务程序入口地址* 4.保护方式与实方式中断主要区别,术语及概念,中断类型号 中断向量 中断向量表 中断描述符 中断描述符表,中断类型号,中断类型号:中断类型的唯一编号。 数量:256个。 编号:0255。 适用范围:8086Pentium 4(各种工作方式),返回,中断向量,含义:中断服务程序的入口地址(CS:IP) 组成及格式:共4个字节,段地址及偏移地址。,中断向量表,含

6、义:存放256个中断向量的内存区域。即存放中断服务程序入口地址的内存区域称为中断向量表。 中断向量表大小:1KB 中断向量表地址范围:00000H003FFH。 适用范围:实地址方式。,中断向量组成及格式,中断描述符,含义: 描述某中断对应中断服务程序的入口地址信息及其属性,包括偏移地址和对应段的选择子。 组成及格式:8个字节,中断描述符表,含义: 存放256个中断描述符的内存区域。 中断描述符表容量:2KB。 适用范围:保护地址和V86方式。,实方式下中断服务程序入口地址,中断类型号n与其对应的中断向量存放起始地址之间的关系是: 起始地址=4n;末地址=4n+3 即中断向量在4n 4n+3指

7、示的内存单元中 示例,实地址方式下的中断服务程序入口地址求法(例子),【例1】假设在实地址方式下,内存单元00140H到00147H中存放的内容如图所示,求51H号中断的中断服务程序入口地址。 解:,例1求解,(1)求中断向量存放的首地址和末地址 51H可知中断向量存放首地址 为51H4=144H(左移两位方法) 末地址=51H4+3=147H (2)从首末地址对应的4个单元找出中断向量 00144H到00147H中内容就是51H号中断的 中断向量。 对照中断向量组成及格式可知 段地址=4540H,偏移地址=3430H, 所以中断服务程序入口地址为 段地址16+偏移地址=45400H+3430

8、H=48830H,保护方式下中断服务程序入口地址,(1)通过中断类型号n从中断描述符表IDT中找出中断描述符。目的是求偏移地址。 中断描述符首地址=中断类型号码n8+IDT基地 从该地址开始取出8字节内容就是中断描述符。 (2)通过中断描述符中的选择子从GDT或LDT中找出或求出段描述符。 (3)据段描述符提供的段基地址与中断描述符提供的偏移地址合成物理地址。 示例,保护方式下的中断服务程序入口地址求法(例子),【例2】已知保护方式下,内存单元中有关单元存放的内容如右图所示,IDT的首地址为00280000H,GDT首地址为00500000H,求20H号中断服务程序入口地址。 解:,例2求解,

9、(1)求偏移地址 先找中断描述符,然后从中找出中断服务程序偏移地址 由n=20H知,中断描述符存放在00280000H+20H8=00280100H开始 的8个单元,所以中断描述符为: 00 42 EE 00 00 13 20 12 H (2)求中断服务程序所在段的段基地址 段选择子为 :0013H=0000 0000 0001 0 011 B TI=0,段描述符在GDT中,RPL=11为普通用户程序请求, 索引值 =0000 0000 0001 0 B 所以中断描述符描述的中断服务程序所在段描述符在GDT中的位置 为: 索引值8+GDT首地址= 0000 0000 0001 0000B+00

10、500000H=00500010H 因此,段描述符为:39 18 40 42 34 00 00 96 H 段基地址=39423400H (3)合成物理地址 服务程序入口地址=对应段的段基地址+偏移地址 =39423400H+00422012H=39845412H,段选择子与段描述符,段选择子,段描述符,表指示器 0:GDT 1:LDT,保护方式与实方式中断主要区别,(1)表的大小不同 中断描述符表2KB;中断向量表1KB (2)表的位置不同 保护方式下的中断描述符表可位于内存的任何位置,由中断描述符寄存器(IDTR)决定;实地址方式下的中断向量表只能固定在00000H003FFH的最低内存1K

11、B的区域。 (3)中断服务程序存放位置不同 保护方式下的中断服务程序可以放到内存的任何区域,而实地址方式下的中断服务程序只能在存放的1MB以下的内存区域。,四、中断过程,1.中断请求 2.中断判优 3.中断响应 4.中断服务(处理) 5.中断返回,中断请求,含义:中断源发出中断请求信号 外部中断源主要有: (1) I/O设备,如键盘、显示器、打印机等。 (2) 数据通道,如软、硬磁盘,磁带等。 (3) 实时钟,如外部所需的定时电路等。 (4) 故障源,如掉电、存储器奇偶校错等。 内部中断源主要包括: (1) CPU指令产生异常,如被0除、溢出、单步等。 (2) 程序执行INT软件中断指令,如I

12、NT 19H等。,中断判优,由于中断是随机的,可能同时出现多个中断源同时请求中断,这时必须对申请中断的中断源进行优先级判别,这一阶段称为中断判优。,中断响应,中断响应过程:把从接到中断请求到中断处理之前,即从请求有效到转中断服务程序入口地址这一段时间。 可屏蔽中断的响应过程,可屏蔽中断的响应过程,(1) 处理器接到中断申请,处理完当前指令即进入响应周期。 (2) 第二阶段即中断响应周期,在其间CPU向外部中断控制器发送两个响应脉冲信号INTA。 第一个响应脉冲通知中断控制器,已经响应外部中断请求,让中断控制器提供中断类型号。第二个响应脉冲,CPU取走中断类型号。 (3) 将标志寄存器中的内容压

13、入堆栈保护,然后清IF和TF标志,以禁止INTR引脚以及陷进和单步中断。 (4) 将断点地址压入堆栈(CS:EIP或CS:IP)。 断点地址:指中断时CPU待执行的下一条指令对应的逻辑地址。顺序:先压入断点地址的CS,后压入偏移地址EIP(或IP)。 (5) CPU得到中断类型号码n后,通过中断类型号与中断服务程序入口地址的关系找出该类型对应的段基地址和偏移地址,从而转入中断服务程序入口地址。完成中断响应任务。,中断服务(处理),1保护现场 保护现场实质:将重要信息压入堆栈。 2开中断 目的:开放所有可屏蔽中断,以允许高级中断嵌套。 3执行中断服务程序 中断服务程序主体-中断的目的。 4关中断

14、 目的:关中断以确保可靠有效地恢复现场。 5恢复现场 恢复现实质:将原来压入堆栈中的内容弹出来。,中断返回,中断服务程序的最后一条指令都无一例外地使用中断返回指令(如IRET或IRETD)。 中断返回的目的:使原来在中断响应过程中的断点地址和标志寄存器中的内容,依次从堆栈中弹出,以便继续执行原来的程序。,五、外部中断源的管理,问题的引出:多个外部中断源同时请求中断,而CPU仅一个INTR引脚,如何处理? 解决方法:对中断控制器硬件编程实现中断管理。 中断源管理的任务:区别中断源、识别中断源优先级以及处理多级中断嵌套问题。,中断优先级识别,中断优先级排队:把多个中断源按轻重缓急优先处理权由高到低

15、的顺序排列起来。 排队方法:软件排队和硬件排队。 在8086Pentium 4系统中,中断优先级从高到低依次为:内部异常中断(除单步)INT n NMI INTR 单步中断,多级中断嵌套,含义:在低级中断中断正在处理时高一级中断请求,则进入高级中断处理程序,处理完高级再返回低级中断处理程序。 示意图,6.2 可编程中断控制器8259A,基本情况: (1)8位可编程中断控制器,又称优先级控制器 (2)处理8级向量优先级中断 (3)具有单一+5V供电 (4)8259A芯片级联组成强大的中断管理系统(多至64级外部中断)。 (5)优先级方式可编程 (6)多级中断管理 主要内容一、内部结构及工作原理二

16、、引脚信号三、工作方式四、编程方法,一、内部结构及工作原理,数据总线缓冲器,数据总线缓冲器是一个三态、双向的8位缓冲器,是8259A与CPU系统数据总线的接口。 数据总线缓冲器的主要功能有: (1) 通过数据总线缓冲器,CPU向8259A内部发送命令。 (2) CPU接收8259A状态信息。 (3) 在中断响应周期,CPU从中获得中断类型号。,读/写逻辑,接收CPU送来的读/写控制信号、片选信 号以及地址选择信号,对内部各个寄存器 进行读写操作。,级联缓冲/比较器,级联缓冲/比较器在级联方式的主从结构 中(两个以上的8259A组成的系统),用 来存放和比较系统中各8259A的从设备标 志(ID

17、)。,控制逻辑,控制逻辑是控制8259A内部各个部件的主要逻辑电路。 主要功能包括: (1) 根据CPU对8259A编程设定的工作方式来产生内部控制信号。 (2) 如果中断请求寄存器IRR有未被屏蔽的位,则控制逻辑对应于当时最高优先的中断源,向CPU发中断请求信号INT。 (3) 接收CPU送来的中断响应信号,并允许中断服务寄存器ISR的相应位(ISRi)置位。 (4) 控制发出相应的中断类型号,以供CPU读取。,中断请求寄存器IRR,IRR是一个专门用于记录外部中断源的中断申请的8位寄存器。 IRR的8个输入端分别可接8个中断源,只 要有中断请求(引脚IRi由低电平变高电 平)时,相应的IR

18、R位就会置1(IRRi=1), 直到中断服务寄存器相应位置1,IRR相 应位才复位。,中断优先权分辨器PR,优先权分辨器PR用来确定存放在IRR中 各个中断请求信号对应中断源的优先级。 并总是选出当前最高优先中断源的中断申 请通知控制逻辑,以便控制逻辑发送中断 请求信号INT给CPU。,中断服务寄存器ISR,ISR为用于记录正在被CPU处理(服务)的中断源的8位寄存器。 当有中断请求并被CPU响应时,即在CPU 响应中断后发来第一个中断响应脉冲时, 将对应的中断服务寄存器相应位置1,直 到结束中断或有中断结束命令才复位。,中断屏蔽寄存器IMR,IMR是8位的用于从硬件上屏中断源的寄存器。 如果

19、IMR相应位为1,则对应中断源的中 断请求被屏蔽。 只有相应位为0且IF=1, CPU才有可能响应可屏蔽中断。,8259A工作过程,1)当外部IRi有中断申请时,IRRi=1。 2) PR判别优先级,并将当前最高优先中断源的请求通知控制逻辑。控制逻辑向CPU发INT信号。 3)当响应中断时,CPU发/INTA,控制逻辑收到响应后,准备中断类型号,同时使ISRi=1,并使IRRi=0。 4)当CPU处理完中断服务程序后发中断结束命令,控制逻辑使ISRi=0,结束中断过程。 如果IMRi=1,则对应中断源的中断请求被屏蔽。,关于8259A思考题,1. 什么情况下IRR=FFH? 2. 什么情况下I

20、SR=FFH? 3. IMR=FFH,计算机系统会怎样? 4. IRR=0AH,ISR=0AH是否可能? 参考答案: 1. 八个中断源都有请求,但还未被CPU响应。 2. 从最低到最高级优先级依次进入中断服务程序,但都没有结束中断处理。(8级中断嵌套) 3. 系统将处于瘫痪状态(所有硬件中断被禁止)。 4. 有可能,ISR=0AH表示IR1和IR3对应的中断请求已被响应,但还没有结束,此时IR1和IR3又都重新有申请,但还未被响应。,二、引脚信号,D7D0为8位双向的数据线 A0:端口选择信号(两个端口地址) IRi:8个中断源中断请求端 INT:中断请求输出信号,三、工作方式,优先级的方式

21、屏蔽中断源的方式 结束中断处理的方式 连接系统总线的方式 中断请求信号方式,优先级的方式,全嵌套方式 特殊全嵌套方式 优先级自动循环方式 优先级特殊循环方式,全嵌套方式,仅允许高一级中断进入嵌套。 从高到低优先级依次为IR0IR1IR2IR3IR4IR5IR6IR7。,特殊全嵌套方式,允许高一级,也允许同级中断进入嵌套。 从高到低优先级依次为IR0IR1IR2IR3IR4IR5IR6IR7。,优先级自动循环方式,在这种方式下,中断源的优先级是变化的,当一个设备得到中断服务以后,它的优先级自动降为最低优先。 在初始状态下的优先级为IR0IR1.IR7,下一次优先级为IR1IR2.IR6IR7IR

22、0,依次类推。,优先级特殊循环方式,与优先级自动循环方式只有一点区别:初始最优者可由程序设定,可任意指定一个初始最高优先级,以后再循环优先。,屏蔽中断源的方式,普通屏蔽方式:设置8259A内部中断屏蔽寄存器IMR的相应位为1(通过OCW1),即可屏蔽对应中断源的中断申请。 特殊屏蔽方式:先写入特殊屏蔽命令字OCW3,然后再写屏蔽命令字OCW1。使当前中断服务寄存器ISR的相应位自动复位。这就只屏蔽了当前正在处理的这级中断。=屏蔽该中断并清中断服务位。,结束中断处理的方式,自动结束方式:系统一旦进入中断服务程序,8259A就自动将当前中断服务寄存器相应位清0。(在第二个中断响应脉冲) 非自动结束

23、方式:在中断服务程序结束,返回主程序之前发一条中断结束命令,使8259A的当前最高优先级的中断对应的ISR复位。,连接系统总线的方式,缓冲方式:一般在多片8259A级联系统中,8259A通过总线驱动器与系统总线相连,而不是8259A直接与系统总线相连,这就是缓冲方式。 非缓冲方式:当系统只有一片8259A或少量几片8259A时,一般将它直接与数据总线相连。这就是所谓的非缓冲方式。,中断请求信号方式,边沿触发方式:在边沿触发方式下,8259A将中断请求输入端出现的上升沿作为中断请求信号,且该信号可以一直保持为高电平。为了防止干扰,其高电平也应有一定的宽度。 电平触发方式:8259A把中断请求输入

24、端出现的高电平作为中断请求信号。但应注意的是,当中断请求被响应后,输入端必须立即撤消高电平,以免引起再一次中断。,四、编程方法,一般原则:先进行初始化编程,再进行控制命令编程 8259A的初始化编程 8259A操作命令字的编程,8259A的初始化编程,对8259A进行初始化编程就是向8259A写入两到四个初始化命令字。流程如图。 初始化编程任务: 1. 设定中断请求信号的有效形式。 2. 设定8259A是单片还是多片级联方式。 3. 设置中断类型号。 4. 设置优先排队规则。 5. 设定中断结束时的操作原则。,芯片初始化命令字ICW1,X86不用,特征位,0=不用ICW4 1=要ICW4,0=

25、边沿触发 1=电平触发,X86不用,0=多片 1=单片,写入A0=0的端口,中断类型初始化命令字ICW2,T7T3决定中断类型号(D2D0任意) 8个中断源具有连续的中断类型号 写入A0=1的端口,主/从片初始化命令字ICW3主片ICW3,IRi=1,指示8259的引脚IRi处接一从片 写入A0=1的端口,主/从片初始化命令字ICW3从片ICW3,ID2,ID1,ID0编码决定从片的INT接主片 写入A0=1的端口,编码决定IRi,控制初始化命令字ICW4,各位含义: PM :CPU类型,0=8080/8085,1=80X86。 AEOI:自动结束中断方式,AEOI=1有效。 M/S: 主从片

26、选择,1=主片,0=从片。 BUF:缓冲方式。BUF=1工作在缓冲方式。 SFNM:特殊全嵌套方式。SFNM=1,特殊全嵌套方式。 写入A0=1的端口,8259A初始化编程实例,一、系统对主片8259A初始化的要求是:(如图所示) 主片的IR2接从片的INT端。 主片中断信号为边沿触发方式。 级联但无缓冲。 起始中断类型号为08H(IR0)。 正常的中断结束,选择特殊的全嵌套方式。 级联方式要ICW3和ICW4。 二、对从片的要求是: 从片的INT接主片的IR2。 从片起始中断类型号为70H。 级联方式要ICW3和ICW4。,实例系统图,编程实例解(主片),MOV AL,00010001B;I

27、CW1:边沿,ICW4,ICW3 OUT 20H, AL ;写入ICW1(A0=0地址端口) MOV AL, 00001000B ;ICW2:IR0中断类型号为08H OUT 21H, AL ;写入ICW2 (A0=1地址端口) MOV AL, 00000100B ;ICW3:主片IR2接从片INT OUT 21H, AL ;写入ICW3 (A0=1地址端口) MOV AL, 00010101B ;ICW4:非缓冲,正常中断结束 ; 特殊全嵌套方式 OUT 21H, AL ;写入ICW4 (A0=1地址端口),编程实例解(从片),MOV AL,00010001B ;ICW1:边沿,ICW4,I

28、CW3 OUT 0A0H, AL ;写入ICW1 MOV AL, 01110000B ;ICW2:IR0中断类型号为70H OUT 0A1H, AL ;写入ICW2 MOV AL, 00000010B ;ICW3:从片接主片的IR2 OUT 0A1H, AL ;写入ICW3 MOV AL, 00000001B ;ICW4:非缓冲,正常结束, ;非特殊全嵌套方式 OUT 0A1H, AL ;写入ICW4,8259A操作命令字的编程,中断屏蔽命令字OCW1 控制中断和优先级循环的操作命令字OCW2 屏蔽查询状态命令字OCW3,中断屏蔽命令字OCW1,Mi=1表示对应的IRi中断源被屏蔽,Mi=0则

29、取消屏蔽(i=0,1,2,3,4,5,6,7)。 要求写入8259A的A0=1的端口,控制中断和优先级循环的操作命令字OCW2,R :优先级循环位,R=1为循环优先。 SL:指定IRi级别位。SL=1时L2L0有效。 EOI:中断结束命令位,1=中断结束 L2L0:编码指定IRi 注意:要求写入8259A的A0=0的端口,屏蔽查询状态命令字OCW3,各位含义: ESMM:特殊屏蔽允许, 1有效。 SMM :特殊屏蔽位,1有效。 P:管理查询方式。当P=1时可用作查询方式 RR:读寄存器命令位,RR=1读寄存器IRR和ISR,RR=0禁止读这两个寄存器的内容。 RIS:寄存器选择位,RR=1时且

30、RIS=0读IRR寄存器,RIS=1读ISR寄存器的内容。 要求写入8259A的A0=0的端口,8259的查询方式,除了在中断方式外,8259A可工作在查询方式。查询方式工作如下: 1)CLI关中断 2)写OCW3使P=1(命令字=0CH)进入查询方式 3)读取查询状态(A0=0端口)判断I值: I=1有中断,W2W1W0为当前最高优先级的编码。,I - - - - W2 W1 W0,D7 D6 D5 D4 D3 D2 D1 D0,操作命令编程实例,MOV AL, 11110000B ;主片OCW1,屏蔽IR4,5,6,7 OUT 21H, AL ;写入主片的OCW1 MOV AL,10000

31、001B ;从片OCW1:屏蔽IR0和IR7 OUT 0A1H, AL ;写入从片的OCW1 MOV AL,00100000B;OCW2:结束最高中断,清ISR相应 ;位,即发普通中断结束命令 OUT 0A0H, AL ;先向从片发中断结束命令 OUT 20H, AL ;后向主片发中断结束命令,8259A状态的读取,中断屏蔽寄存器IMR的读取 读取IMR只需用一条IN指令 IN AL, 21H;读主片IMR(A0=1端口) 中断请求寄存器IRR的读取 MOV AL, 0AH;发读取IRR的OCW3命令字 OUT 20H, AL ;写入A=0的偶地址端口 IN AL, 20H;读IRR内容到AL

32、中 中断服务寄存器ISR的读取 MOV AL, 0BH ;发读取ISR的OCW3命令 OUT 20H, AL ;命令字写入A0=0的端口 IN AL,20H ;读ISR内容到AL中,高级中断控制器,不同处理器采用不同的中断控制器 8086/80286采用8259A作为中断控制器 80386/80486采用82380多功能模块(包括中断控制器) Pentium 以后采用不同的芯片组(内含各种I/O接口,包括中断控制器) 所有高级中断控制器均在地址、控制字等方面与8259A兼容。 结论:目前微机对中断控制器编程方法与对8259A基本相同。,6.3 中断调用及中断程序设计,理解中断调用指令的执行过程

33、 INT n指令 IRET指令,INT n指令的执行过程,(1)SP=SP-2 (2)PSW (FLAGS) 入栈 (3)SP=SP-2 (4)断点地址(INT n 的下一条指令)的CS入栈 (5)SP=SP-2 (6)断点地址的IP入栈 (7)IP=0000:n*4 (8)CS=0000:n*4+2,IRET 指令的执行过程,(1)IP=SS:SP (2)SP=SP+2 (3)CS=SS:SP (4)SP=SP+2 (6)FLAGS=SS:SP (7)SP=SP+2,中断调用,BIOS功能调用借助于存于系统板ROM中的BIOS程序实现功能调用,它是最直接控制硬件的系统程序,是其它程序(OS,

34、用户程序等)与硬件的接口程序。 DOS功能调用借助于DOS操作系统提供的处理程序实现功能调用。,BIOS中断调用,BIOS中断类型 BIOS调用方法 BIOS调用示例,BIOS中断类型,BIOS调用方法,1)在AH寄存器中设置调用子程序的功能号 2)根据要求设置入口参数 3)使用INT n指令转入BIOS程序入口,其中n为中断类型号 4)程序运行完毕后,如果有出口参数,则按规定取得出口参数,BIOS调用示例,显示功能 日期和时间 键盘服务,BIOS显示功能调用10H示例,在当前光标处显示一个字符$,光标自动后移,功能号AH=0EH 入口参数:要显示的字符在AL中 调用方法:MOV AH,0EH

35、 MOV AL,$ INT 10H,利用BIOS日期调用读取日期,读系统日期,功能号04H 入口参数:无 出口参数:CX=年(带世纪),DH=月,DL=日 调用方法:MOV AH,04 INT 1AH,利用BIOS日期调用设置日期,读系统日期,功能号05H 入口参数:CX=年(带世纪),DH=月,DL=日出口参数:无 调用方法: MOV CX,2002H ;2002年 MOV DX,0512H ;5月12日 MOV AH,05 INT 1AH,利用BIOS时间调用读取时间,读系统时间,功能号02H 入口参数:无 出口参数:CH=时,CL=分,DH=秒 调用方法:MOV AH,02 INT 1A

36、H,利用BIOS时间调用设置时间,读系统时间,功能号03H 入口参数:CH=时,CL=分,DH=秒 出口参数:无 调用方法: MOV AH,03 MOV CX,1209H ;12:09 MOV DH,0 INT 1AH,BIOS键盘服务调用16H示例,从键盘读取字符 入口参数:AH=0 出口参数:AH=键盘扫描码,AL=ACII码字符 调用方法:MOV AH,0 INT 16H,DOS中断调用,DOS中断类型 DOS调用方法 DOS调用示例,DOS中断类型,DOS调用方法同BIOS,在AH寄存器中设置调用子程序的功能号 根据要求设置入口参数 使用INT 21H指令转入DOS程序入口,其中n为中

37、断类型号 程序运行完毕后,如果有出口参数,则按规定取得出口参数,DOS中断调用21H示例,显示功能 日期和时间 键盘服务,DOS显示功能调用示例,在当前光标处显示一个字符$,光标自动后移,功能号AH=02H 入口参数:要显示的字符在DL中 调用方法:MOV AH,02H MOV DL,$ INT 21H 与BIOS功能两点不同:一是中断类型号和功能号不同,二是要显示的字符存放寄存器不同,利用DOS日期调用2AH读取日期,读系统日期,功能号2AH 入口参数:无出口参数:CX=年(带世纪),DH=月,DL=日,AL=星期(0-星期一,.) 调用方法:MOV AH,2AH INT 21H,利用DOS日期调用2BH设置日期,读系统日期,功能号2BH 入口参数:CX=年(带世纪),DH=月,DL=日出口参数:成功,AL=0;失败,AL=0FFH 调用方法: MOV CX,2010H ;2002年 MOV DX,0321H ;3月21日 MOV AH,2BH INT 21H,DOS键盘服务调用示例,从键盘读字符并回示 入口参数:AH=1 出口参数:AL=ACII码字符 调用方法:MOV AH,1 INT 21H,中断程序设计的任务,加载程序(1)设置中断向量(2

温馨提示

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

评论

0/150

提交评论