【汇编语言第3版】第7章 实模式下的中断程序设计解析
- 格式:ppt
- 大小:415.00 KB
- 文档页数:94
计算机硬件实验室实验报告
亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。
先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。
侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。
臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
先帝知臣谨慎,故临崩寄臣以大事也。
受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。
今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。
此臣所以报先帝而忠陛下之职分也。
至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。
若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。
臣不胜受恩感激。
今当远离,临表涕零,不知所言。
第7章微机的中断系统版权所有, 2000 (c) 南京航空航天大学计算机科学与工程紊什么是中断•所谓中断,是指处理器在执行正常程序过程中,当出现某些异常情况或某个外部设备请求时,处理器暂时中止正在执行的程序,转而去执行其特定的服务程序,并在执行完服务程序后返回原来被中止的程序处继续执行的过程。
什么是异常?异常是指把因内部意外条件而改变程序执行流程以报告出错情况和非正常状态的过程称为异常中断(简称异常)。
中断和异常有什么区别?(1)中断处理异步发生的外部事件。
(2)异常处理同步发生的内部事件。
(3)硬件中断是作为外部事件的结果而发生的。
(4)中断是在当前指令执行完后才去执行服务程序的,在中断处理程序完成中断服务后,程序继续执行被中断指令之后的指令。
二、中断分类中断服务程序的入口地)组成及格式:节,段地址实方式下中断服务程序入口地址•中断类型号n与其对应的中断向量存放起始地址之间的关系是:起始地址=4×n;末地址=4×n+3即中断向量在4×n ~ 4×n+3指示的内存单元中•示例(例子)保护方式下中断服务程序入口地址•(1)通过中断类型号n从中断描述符表IDT中找出中断描述符。
–中断描述符首地址=中断类型号码n×8+IDT基地–从该地址开始取出8字节内容就是中断描述符。
•(2)通过中断描述符中的选择子从GDT或LDT中找出或求出段描述符。
•(3)据段描述符提供的段基地址与中断描述符提供的偏移地址合成物理地址。
•示例下,内存单元中有关单元存放的内容如右图所示,IDT的首地址为0028000000280000H H,GDT首地址为0050000000500000H H,求2020H H号中断服务程序入口地址。
解:保护方式与实方式中断主要区别•(1)表的大小不同–中断描述符表2KB;中断向量表1KB •(2)表的位置不同–保护方式下的中断描述符表可位于内存的任何位置,由中断描述符寄存器(IDTR)决定;实地址方式下的中断向量表只能固定在00000H~003FFH的最低内存1KB的区域。
汇编语⾔之中断学习计算机经常会遇到异常,会产⽣中断,发出中断请求。
中断分为内中断和外中断。
下⾯主要介绍的是内中断。
内中断,cpu什么时候会发出中断信号呢?⼀般有⼀下四种情况: ·除法指令 ·单步执⾏ ·int 0指令 ·int n指令 产⽣中断信号的情况⼜被称为中断源。
cpu接收到中断信号以后,要根据中断信号来确定中断情况。
所以,中断信息⾥⾯应该包括中断的来源以及中断的情况。
因此,CPU将定义⼀个变量来存储辨别中断信息,称为中断字节码(8位变量)可以⽤中断字节码表⽰256种情况。
每种中断情况都对应⼀种中断处理程序,但是CPU⼜如何确定相应中断处理程序在内存中的地址呢?如何确定相应中断处理程序的⼊⼝地址?so,中断向量应运⽽⽣。
中断向量就是中断处理程序的⼊⼝地址。
不同的中断情况对应不同的中断处理程序,⼜对应不同的中断向量,为了⾼效的处理中断,我们⼜定义了中断向量表,顾名思义,中断向量表⽤来存储中断向量,就是中断处理程序的⼊⼝地址。
⼀条中断向量有占⽤多少内存地址呢?中断向量⽤来存储中断处理程序的⼊⼝地址,包括段地址和偏移地址,所以占⽤两个字的存储单元,⾼地址字段⽤来存储段地址,低地址字段⽤来存储偏移地址。
CPU知道了相应中断处理程序的⼊⼝地址后,计算机处理中断,中断过程。
⽤中断字节码找到中断向量,来设置CS和IP,这个过程由计算机硬件来完成,这个过程叫做中断过程。
以8086CPU为例,在接收到中断信息后,要执⾏的操作: 1.(从中断信息中)找到中断字节码 2.标志寄存器的值⼊堆栈 3.设置标志寄存器的第8位TF和第9位IF值为0 4.CS 值⼊栈 5.IP值⼊栈 6.从内存地址为终端类型码4 和中断类型码4+2的两个字单元读取中断处理程序的⼊⼝地址,设置CS IP 中断处理程序 由于cpu随时都有可能检测到中断信息,也就是说cpu随时都要执⾏中断处理程序,所以,中断处理程序必须⼀致存储在内存某段空间中。
微机原理与接口技术第十八讲15:31第七章 微型计算机中断系统内容提要 内容提要7-1 概述 7-1 概述 7-2 中断处理过程 7-2 中断处理过程 7-3 中断优先级和中断向量 7-3 中断优先级和中断向量 7-4 可编程中断控制器 7-4 可编程中断控制器功能和引脚 内部结构 8259A的中断管理方式 8259A的编程方式 8259A的中断级联15:31 2§7-4 可编程中断控制器( 8259A)四、8259A的编程方法对8259的编程有两类命令字: 初始化命令字ICW 操作命令字OCW 系统复位后,初始化程序对8259置入初始化命令字。
初始化后可通过发出操作命令字OCW来定义8259的操作方 式,实现对8259的状态、中断方式和优先级管理的控制。
初始化命令字只发一次,操作命令字允许重置,以动态改变 8259的操作与控制方式。
15:313§7-4 可编程中断控制器1.初始化命令字初始化命令字完成的功能:【编程方法】设定中断请求信号触发形式:高电平触发或上升沿触发。
设定8259A工作方式,单片或级联。
设定8259A中断类型号基值,即IR0对应的中断类型号。
设定优先级设置方式。
设定中断处理结束时的结束操作方式。
【注意】:对8259A编程初始化命令字,共预置4个命令字:ICW1、ICW2、ICW3、ICW4。
初始化命令字必须顺序填写,但并不是任 何情况下都要置4个命令字,用户根据具体使用情况而定。
15:314§7-4 可编程中断控制器1.初始化命令字⑴ ICW1 —— 芯片控制初始化命令字【格式】 A0 D7 × × × 1 LTIM 0【编程方法】D0 SNGL IC4 1:需要设置ICW4 0:不需要设置ICW4 1:单级使用 0:级联使用 1:电平触发 0:边缘触发08086/8088 系统中不用标 志 位15:315§7-4 可编程中断控制器1.初始化命令字⑵ ICW2——设置中断类型号初始化命令字A0 D7【编程方法】D01T7 T6 T5 T4 T3中断类型的高5位0008259A中IR0端对应的中断类型号为中断类型号基值,它是可以被8整 除的正整数,ICW2用来设置这个中断类型号基值,由此提供外部中断的中 断类型号。