中断向量表地址
深入C51中断向量表
深入C51中断向量表在FLASH 中有一组特殊的保留单元000H~00ABH0000H-0002H 这三个单元包含一个无条件跳转指令(LJMP),当系统复位后,PC=0000H,跳转到main 函数(不确切)LJMP 是三字节指令。
就是由指令码02H(一个字节) + 16 位地址(2 个字节)组成16 位地址就是Main()函数的地址,其实也不然,由于main()函数在调用之前,要进行堆栈的初始化之类的工作,在KEIL 中,这部分代码是自动生成的(对于C 程序来说),跳转地址实际就是这个堆栈汇编的代码开头处!以下是一个C 程序转换成汇编的部分代码C:0x0000 020410 LJMP C:0410 ;跳转到堆栈初始化的开头处. ......................................................... ;中断向量表C:0x0023 020527 LJMP UART0_ISR(C:0527) ;跳转到串口中断函数地址C:0x0410 787F MOV R0,#0x7F ;堆栈初始化程序C:0x0412 E4 CLR AC:0x0413 F6 MOV @R0,AC:0x0414 D8FD DJNZ R0,C:0413C:0x0416 75814F MOV SP(0x81),#0x4FC:0x0419 020457 LJMP C:0457C:0x041C 02049C LJMP main(C:049C) ;跳转到mainvoid UART0_ISR (void) interrupt 4 using 3 ;串口中断函数C:0x0527 C0E0 PUSH ACC(0xE0)C:0x0529 C083 PUSH DPH(0x83)C:0x052B C082 PUSH DPL(0x82)。
显然当我们编写C 程序代码的时候,000H~00ABH 的内容KEIL 编译转换成汇编后,会自动帮我们添加。
关于STM32中断向量表的位置 、重定向问题
关于STM32 中断向量表的位置、重定向问题首先我们需要跳到main 函数,这个就不多说了。
那么,中断发生后,又是怎么跑到中断入口地址的呢?从stm32f10x.s 可以看到,已经定义好了一大堆的中断响应函数,这就是中断向量表,标号__Vectors,表示中断向量表入口地址,例如:AREA RESET, DATA, READONLY ; 定义只读数据段,实际上是在CODE 区(假设STM32 从FLASH 启动,则此中断向量表起始地址即为0x8000000)EXPORT __Vectors IMPORT OS_CPU_SysTickHandler IMPORT OS_CPU_PendSVHandler__Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; NMI Handler DCD HardFault_Handler ; Hard Fault Handler DCD MemManage_Handler ; MPU Fault Handler DCD BusFault_Handler ; Bus Fault Handler DCD UsageFault_Handler ; Usage Fault Handler 这个向量表的编写是有讲究的,跟硬件一一对应不能乱写的,CPU 找入口地址就靠它了,bin 文件开头就是他们的地址,参考手册RM0008 的10.1.2 节可以看到排列。
我们再结合CORTEX-M3的特性,他上电后根据boot 引脚来决定PC 位置,比如boot 设置为flash 启动,则启动后PC 跳到0x08000000。
此时CPU 会先取2 个地址,第一个是栈顶地址,第二个是复位异常地址,故有了上面的写法,这样就跳到reset_handler。
那么这个reset_handler 的实际地址是多少.?下面的一堆例如Nmi_handler 地址又是多少呢?发生中断是怎么跑到这个地址的呢?下面挨个讲解。
计算机组成原理第5章作业答案
14. 在什么条件下,I/O设备可 以向CPU提出中断请求?
解:I/O设备向CPU提出中断 请求的条件是:I/O接口中的设备 工作完成状态为1(D=1),中断 屏蔽码为0 (MASK=0),且CPU
查询中断时,中断请求触发器状态 为1(INTR=1)。
15. 什么是中断允许触发器?它 有何作用?
程序控制接口、程序中断接口、 DMA接口三种。
11. 简述I/O接口的功能和基本组成。
答: P188 (1)选址功能 (2)传送命令的功能 (3)传送数据的功能 (4)反映I/O设置工作状态的功能
13. 说明中断向量地址和入口地址的 区别和联系。
解: 中断向量地址和入口地址的区别: 向量地址是硬件电路(向量编码器)
输入输出系统
第 五章2. 简要说明C源自U与I/O之间传递信息可 采用哪几种联络方式?它们分别用于什么 场合?
答: CPU与I/O之间传递信息常采用 三种联络方式:直接控制(立即响应)、 同步、异步。 适用场合分别为:
直接控制适用于结构极简单、速度极 慢的I/O设备,CPU直接控制外设处于某种 状态而无须联络信号。
N个数据所需的处理时间=P×N+Q秒 平均每个数据所需处理时间= (P×N+Q)/ N 秒; 求倒数得: 该系统跟踪到的每秒中断请求数=N/ (P×N+Q)次。
19. 在程序中断方式中,磁盘申请 中断的优先权高于打印机。当打印机正 在进行打印时,磁盘申请中断请求。试 问是否要将打印机输出停下来,等磁盘 操作结束后,打印机输出才能继续进行? 为什么?
I/O设备匀速运行, 25s后,第二 个中断请求到来,CPU正在执行中断程 序接收第一个数据, 40s时响应;
50s后,第三个中断请求到来, CPU正在执行中断程序接收第二个数据, 要到80s时响应;
微机接口8259试题+答案
一、选择题1. 已知中断类型码为18H,则中断服务程序入口地址存放在中断矢量表的( C )?A.0000H:0072H~ 0000H:0075HB. 0000H:0072H~ 0000H:0073HC. 0000H:0060H~ 0000H:0063HD. 0000H:0060H~ 0000H:0061H2. 在中断系统中,中断类型码是在( D)控制下送往CPU的。
A.中断请求信号INTRB.读信号C.地址译码信号D.中断响应信号3. 8086/8088的中断向量表用于存放( B )。
A.中断类型号B. 中断服务程序入口地址C. 中断服务程序D. 中断服务程序返回地址4. 8259的OCW1――中断屏蔽字( C )设置。
A.在ICW之前B. 只允许一次C. 允许多次D. 仅屏蔽某中断源5. 一个8259可提供(B )中断类型号。
A.1B. 8C. 16D. 646. 响应NMI请求的必要条件是( D )。
A.IF=1B. IF=0C. 一条指令结束D. 无INTR请求7. 响应INTR请求的必要条件是( B)。
A. IF=0B. IF=1C. TF=0D. TF=18. 当8086CPU的INTR=1且IF=1时,则CPU完成( C )后,响应该中断请求,进行中断处理。
A.当前时钟周期B.当前总线周期C. 当前指令周期D. 下一个指令周期9. INTn指令中断是( C )。
A.由外设请求产生B. 由系统断电引起C. 通过软件调用的内部中断D. 可用IF标志屏蔽的10. 8086/8088中断是向量中断,其中断服务程序的入口地址是( D )提供。
A.外设中断源B. CPU中断逻辑电路C. 从中断控制器读回中断类型号左移2位D. 由中断类型号指向的中断向量表中读回11. 9个8259A级连可提供( D )中断类型号。
A.1B. 8C. 16D. 6412. 8259普通EOI命令适用于( B )方式中的中断结束。
什么是中断?什么是中断向量?中断向量表的地址范围?
1.什么是中断?什么是中断向量?中断向量表的地址范围?答:中断就是CPU在执行当前程序时由于内外部事件引起CPU暂时停止当前正在执行的程序而转向执行请求CPU暂时停止的内外部事件的服务程序,该程序处理完后又返回继续执行被停止的程序;中断向量是中断处理子程序的入口地址;地址范围是00000H-003FFH。
2.3.微机系统的硬件由哪几部分组成?答:微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。
4.什么是微机的总线,分为哪三组?答:是传递信息的一组公用导线。
分三组:地址总线,数据总线,控制总线。
5.8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什么?答:总线接口部件(BIU)功能:根据执行单元EU的请求完成CPU与存储器或IO 设备之间的数据传送。
执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接口部件进行算术运算。
6.8086指令队列的作用是什么?答:作用是:在执行指令的同时从内存中取了一条指令或下几条指令,取来的指令放在指令队列中这样它就不需要象以往的计算机那样让CPU轮番进行取指和执行的工作,从而提高CPU的利用率。
7.8086的存储器空间最大可以为多少?怎样用16位寄存器实现对20位地址的寻址?完成逻辑地址到物理地址转换的部件是什么?答:8086的存储器空间最大可以为2^20(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存储单元时,先将段寄存器内的内容左移4位,然后加上指令中提供的16位偏移地址形成20位物理地址。
8.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?答:指令的物理地址为21F00H;CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。
中断处理题
一、单选题:将正确答案的序号填入上。
1.1 在PC/XT微机中,NMI中断的中断向量在中断向量表中的位置是。
(C)A. 由程序指定的B. 由DOS自动分配的C. 固定在0008H开始的4个字节中D. 固定在中断向量表的表首1.2 如果有多个中断同时发生,系统将根据中断优先级响应优先级最高的中断请求。
若要调整中断事件的响应顺序,可以利用。
(B)A. 中断响应B. 中断屏蔽C. 中断向量D. 中断嵌套1.3 8086对下列中断优先级响应最高的请求是。
(C)A. NMIB. INTRC. 内部软件中断D. 单步中断1.4 执行INT n指令或响应中断时,CPU入栈操作保护的次序是。
(A)A. FLAGS ,CS,IPB. CS,IP, FLAGSC. FLAGS ,IP,CSD. IP,CS, FLAGS1.5中断向量地址是。
(C)A. 子程序入口B. 中断服务程序入口地址C. 中断服务程序入口地址的地址D. 传送数据的起始地址1.6 8086的中断源来自两个方面,即。
(A)A. 外部中断和内部中断B. 可屏蔽和非屏蔽中断C. CPU产生的中断和软件中断D. 单步和溢出错1.7下面中断中,只有需要中断类型码。
(C)A. INTOB. INT nC. INTRD. NMI1.8 当多片8259A级联使用时,对于从8259A,级联信号CAS2~CAS0是。
(A)A. 输入信号B. 输出信号C. 双向信号D. 中断信号1.9 当用8259A中断控制器时,其中断服务程序执行EOI命令的作用是。
(B)A. 屏蔽正在被服务的中断,使其不再发出中断请求B. 清除该中断服务寄存器中的对应位,以允许同级或低级的中断能被响应C. 清除该中断请求寄存器中的对应位,以免重复响应该中断。
D. 判定优先级1.10 下列8259A的命令字中,必须在正常操作开始前写入的是。
(A)A. 初始化命令字ICWB. 操作命令字OCWC. 初始化命令字ICW1D. 初始化命令字ICW31.11 有三片8259级联,从片分别接入主片的IR2和IR5,则主8259的ICW3中的内容为;两片从片8259的ICW3的内容分别为。
微机原理习题解答(供参考)
微机原理习题解答(供参考)第1章习题和解答15. 将下列⼗进制数分别转化为⼆进制数、⼗六进制数和BCD码。
(1)15.32=(0000 1111.0101 0001)2=(0F.51)16=(0001 0101.0011 0010)BCD(2)325.16=(0001 0100 0101.0010 1000)2=(145.28)16=(0011 0010 0101.0001 0110)BCD(3)68.31=(0100 0100.0100 1111)2=(44.4F)16=(0110 1000.0011 0001)BCD(4)214.126=(1101 0110.0010 0000)2=(0D6.20)16=(0010 0001 0100.0001 0010 0110)BCD16. 将下列⼆进制数分别转化为⼗进制数和⼗六进制数。
(1)10110101= 181=0B5H(2)11001011= 203=0CBH(3)10101.1001= 21.5625=15.9 H(4) 101101.0101= 45.3125=2D.5H17. 将下列⼗六进制数分别转化为⼆进制数、⼗进制数。
(1)FAH=1111 1010B=250(2)12B8H=0001 0010 1011 1000B=4792(3)5A8.62H=0101 1010 1000.0110 0010B=1448.3828125(4)2DF.2H=0010 1101 1111.0010B=735.12518. 若X=-107,Y=+74按8位⼆进制可写出:。
[X]补=95H ,[Y]补=4AH , [X +Y]补=0DFH,[X-Y]补=4BH。
19.X=34AH,Y=8CH。
问:有三位和两位⼗六进制数X和Y,(1)若X,Y是纯数(⽆符号数),则:X+Y=3D6H;X-Y=2BEH。
(2)若X,Y是有符号数,则:X+Y=2D6 H;X-Y=3BEH。
微机原理第7章练习题及答案
第7章输入/输出与中断一、自测练习题㈠选择题1.一微机系统有10根地址线用于I/O端口寻址,因而具有I/O空间的范围是( )字节。
A) 1024 B) 10K C) 0.5M D) 1M2.8086CPU读/写一次存储器或I/O端口所需的时间称为一个( )。
A) 总线周期 B) 指令周期 C) 时钟周期 D) 基本指令执行时间3.微型计算机的输入/输出有三种不同的控制方法,其中以( )控制的输入/输出是微机进行I/O的一种最主要的控制方式。
A) 程序控制 B) 中断控制C) DMA控制D) 以上均可4.程序查询I/O方式的工作流程是按( )的次序完成一个字符的传输。
A) 写数据端口,读/写控制端口B) 读状态端口,读/写数据端口C) 写控制端口,读状态端口,写数据端口D) 随I/O接口的具体要求而定5.在CPU与外设的I/O传送控制方式中,效率高、实时性强的方式是( )。
A) 同步传送 B) 查询传送 C) 无条件传送 D) 中断传送6.在CPU与外设的I/O传送控制方式中,传送速度最快的方式是( )。
A) 无条件传送 B) 查询传送 C) 中断传送 D) DMA传递7.用具有两个状态(“0”和“1”态)的一组开关作简单输入设备时,应采用( )传送方式来输入信息。
A) 无条件B) 查询C) 中断D) DMA8.用一组发光二极管作为简单输出设备时,应采用( )传送方式来输出信息。
A) DMA B) 无条件C) 查询D) 中断9.在微机系统中引入中断技术,可以( )。
A) 提高外设速度B) 减轻主存负担C) 提高处理器的效率D) 增加信息交换的精度10.CPU响应中断请求的时刻是在( )。
A) 执行完成正在执行的程序以后 B) 执行完正在执行的指令以后C) 执行完本时钟周期以后D)执行完正在执行的机器周期以后11.8086/8088CPU向应两个硬中断INTR和NMI时,相同的必要条件是( )。
A) 允许中断B) 当前I/O操作执行结束C) 总线空闲D) 当前访问内存操作结束12.在微型计算机系统中,高速外设与内存储器进行批量数据传送时,应采用( )。
微机原理与接口技术第六章8259A练习题及答案
微机原理与接口技术第六章-8259A练习题及答案中断技术和中断控制器8259A练习题及答案一、填空题1.8088微处理器最多能处理256种不同类型的中断。
2.8088系统的中断向量表位于从内存地址 00000H 开始,占1K字节存储单元。
3.8088CPU响应INTR中断时,将PSW(或标志寄存器内容)和断点(或CS:IP)进堆栈保存。
4.8259A可管理8级优先级中断源,通过级联,最多可管理 64 级优先级中断源。
5.若8259A的IRR(中断请求寄存器)的内容为10H,说明IR4请求中断。
二、选择题6.8088CPU的标志寄存器中IF=1时,表示允许CPU响应______中断。
CA.内部中断B.外部中断C.可屏蔽中断D.不可屏蔽中断7.CPU在响应中断时,保存断点是指______。
DA.将用户设置的程序指令地址入栈保存B.将中断服务程序的入口地址入栈保存C.将程序状态字PSW入栈保存D.将返回地址即程序计数器PC(CS:IP)的内容入栈保存8.8088的中断向量表用于存放______。
BA.中断类型号B.中断服务程序的入口地址C.中断服务程序的返回地址D.断点地址三、判断题9.8086的可屏蔽中断的优先级高于不可屏蔽中断。
[ ] ×10.通常8259A芯片中的IR0优先级最低,IR7的优先级最高。
[ ]×11.在8088系统中,所谓中断向量就是中断服务程序入口地址。
[ ] √四、简答题12.CPU响应INTR中断的条件是什么?答:(1)INTR信号为有效电平(2)当前指令执行完毕(3)CPU开中断(IF=1)(4)没有更高级的请求(RESET , HOLD ,NMI)13.一般CPU响应中断时自动做哪些工作? 8088CPU呢?答:一般CPU在响应中断时,关中断,保存断点,识别中断源,找到中断服务程序入口地址,转入中断服务程序。
8080CPU在响应中断时,首先把PSW(或标志寄存器内容)入栈保存,其余同一般CPU.14.8088CPU在执行中断返回指令IRET时,执行什么操作?答:(1)弹出断点送CS:IP第 - 2 - 页共 13 页(2)弹出PSW送标志寄存器15.中断控制器8259A中下列寄存器的作用是什么?(1) IRR (中断请求寄存器) :保存中断源的中断请求(2) IMR (中断屏蔽寄存器) :屏蔽/允许中断源请求中断,由程序写入,1为屏蔽,0为允许(3) ISR (中断服务寄存器): 记录CPU正在为哪些中断源服务(4) IVR (中断向量寄存器): 保存中断向量号16、初使化时设置为非自动结束方式,那么在中断服务程序将结束时必须设置什么操作命令?如果不设置这种命令会发生什么现象?答案:当中断服务程序将结束时,必须发0CW2=20H为中断结束命令,执行此命令即撤消正在服务的中断请求和服务标志;否则,即使返回主程序但未退出此中断,造成中断响应的混乱。
微机原理与接口技术课件 7.中断向量表(已看)
8259A的工作过程
8259A对中断请求的处理过程如下:
当某IRi有效时,IRR相应位置1 若有效的IRi未被屏蔽,则向CPU发出中断请求INT 检测到第1个INTA信号后,置ISRi=1,IRRi=0 检测到第2个INTA信号后,把ISRi=1中最高优先级 的中断类型码 n 放到DB上
19
可编程中断控制器8259A
PIC,Programmable Interrupt
可对8个中断源实现优先级控制 (单个管8个) 可扩展至对64个中断源实现优 先级控制(9个管64个) 可编程设置不同工作方式(多套 管理方案) 根据中断源向x86提供不同中断 类型码n(来访者1人1号) 引脚分配及功能见右图
的中断;
内部中断:由处理器电路或中断指令产生的中断,
如除0中断,int指令等。
4
8086的中断向量表
存放各类中断的中断服务程序的入口地址CS:IP(段 CS和偏移IP)——中断向量 表的地址位于内存的00000H~003FFH,大小为 1KB,共256个中断向量(中断向量表) 每个中断向量占用4 Bytes,低字为段内偏移IP,高 字为段基址CS 根据中断类型号n获得中断服务程序入口的方法: 中 断向量在IVT中的存放地址=4×n (中断向量地址)
中断指令 INT n
(n=0~255)
软件 硬件
外部/硬件中断请求
2
NMI
非屏蔽中断请求
可 屏 蔽
中 断 请 求
11
DB
3 中断逻辑
n 中断控 制器 8259A PIC
0
1
单步中断
内部排队 中断开关
STMNVIC中断向量表设置以及ETI中断寄存器设置
STMNVIC中断向量表设置以及ETI中断寄存器设置NVIC中断向量表设置以及EXTI中断寄存器设置⼀、开始中断的步骤A.端⼝设置。
这⾥包括了输⼊引脚的设置,务必记得打开GPIO的时钟和AFIO的时钟信号B.中断寄存器的设置C.NVIC中断向量寄存器的设置。
这⾥关键点有优先级分组设置以及中断⼊⼝地址的设置D.中断函数的书写⼆、具体设置1、端⼝设置void GPIOA_init(void){GPIO_DeInit(GPIOA);RCC->APB2ENR |= 0X00000005;GPIOA->CRL &= 0XFFFFFF00;GPIOA->CRL |= 0x00000038;GPIOA->ODR = 0X00000000;GPIOA->ODR |= 0X00000001;AFIO->EXTICR[0] |= 0X00;}a.在对端⼝进⾏任何操作之前,必须打开对应的时钟信号,其设置才能⽣效。
这⾥使⽤了GPIOA.00端⼝作为中断0输⼊,作为输⼊时⼀般我们设置为上拉输⼊,如果要设置成浮空输⼊的话,外部⼀定要加上拉电阻,这样对于过滤输⼊波动很有益处(假设在电压在3.3-2.0之间进⾏波动,时间上没尝试按键操作,因为⼀旦有按键,就应该为0,那么接了上拉的话,除⾮产⽣了低电平,否则⼩波动都会被拉⾼过滤掉)b.复⽤端⼝时钟信号的开启这⾥需要特别注意的是因为我们要对复⽤端⼝寄存器进⾏操作,所以必须打开复⽤端⼝寄存器时钟c.AFIO->EXTICR[0] |= 0X00 ,EXTICR(External interrupt configuration register)即外部中断配置寄存器。
因为所有的外部中断输⼊来源都是经由GPIO⼝输⼊的,所以我们需要选择哪⼀个中断是经由那个IO⼝输⼊的。
我所写的这条代码的意思是EXTI0的中断来源为GPIOX_0⼝输⼊。
图1从寄存器配置中我们可以看到每个中断由四位配置,那么STM32总计有16个外部中断(具体参照STM32参考⼿册P133页),因此EXTIR有四组,在书写时要注意。
STM32 中断向量表的位置 、重定向
STM32 中断向量表的位置、重定向我们也知道怎么跳到main 函数了,那么,中断发生后,又是怎么跑到中断入口地址的呢?从stm32f10x.s 可以看到,已经定义好了一大堆的中断响应函数,这就是中断向量表,标号__Vectors,表示中断向量表入口地址,例如:AREA RESET, DATA, READONLY ;定义只读数据段,实际上是在CODE区(假设STM32 从FLASH 启动,则此中断向量表起始地址即为0x8000000)EXPORT __VectorsIMPORT OS_CPU_SysTickHandler IMPORTOS_CPU_PendSVHandler__Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; NMI Handler DCD HardFault_Handler ; Hard Fault Handler DCD MemManage_Handler ; MPU Fault Handler DCD BusFault_Handler ; Bus Fault Handler DCD UsageFault_Handler ; Usage Fault Handler这个向量表的编写是有讲究的,跟硬件一一对应不能乱写的,CPU 找入口地址就靠它了,bin 文件开头就是他们的地址,参考手册RM0008 的10.1.2 节可以看到排列。
我们再结合CORTEX-M3 的特性,他上电后根据boot 引脚来决定PC 位置,比如boot 设置为flash 启动,则启动后PC 跳到0x08000000。
此时CPU 会先取2 个地址,第一个是栈顶地址,第二个是复位异常地址,故有了上面的写法,这样就跳到reset_handler。
那么这个reset_handler 的实际地址是多少.?下面的一堆例如Nmi_handler 地址又是多少呢?发生中断是怎么跑到这个地址的呢?下面挨个讲解。
arm cortex m0的中断向量
ARM Cortex-M0的中断向量表位于片上闪存起始地址处,是一个uint32_t类型的数组。
在系统复位后中断向量表始终是在0x00000000地址。
系统启动后可以对中断向量表进行重定向。
16位以后的中断为芯片厂商自行定义。
例如,Cortex-M3最多可以有32个中断。
中断向量表格式中每一位为一个32bit的地址,每一个地址对应一个中断函数的地址(第一位除外)。
除了第一位以外,所有地址的目标都为寻址寄存器(PC)。
当相应中断触发时,ARM Cortex-M 硬件会自动把中断向量表中相应的中断函数地址装载入寻址寄存器(PC)然后开始执行中断函数。
计算机硬件技术中断技术知识考试题
计算机硬件技术中断技术知识考试题第八章习题参考答案8.1 什么是中断?使用中断技术有什么好处?答:中断是指由CPU内/外部事件引起或者由程序的预先安排,使CPU中断正在运行的正常程序(主程序),而转到为该内部/外部事件或者预先安排的事件服务程序,待服务完毕,再返回被暂时中断的正常程序处继续执行正常程序的过程。
使用中断技术,能够使计算机方便地实现如下一些操作:(1)分时操作。
有了中断系统,CPU能够命令多个外部设备同时工作,CPU分时操纵这些外设,大大提高了CPU的吞吐率。
(2)实现实时处理。
当计算机用于实时操纵,系统要求计算机为它服务的时间是随机的,而中断系统中这种请求--响应模式正好迎合了实时系统的需求。
(3)故障处理。
计算机在运行过程中,往往会出现一些故障,如电源掉电、存储出错、运算溢出等。
有了中断系统,当出现上述情况时,CPU能够随时转去执行故障处理程序,自行处理故障而不必停机。
随着微型计算机的进展,中断系统不断增加新的功能,中断系统甚至能够实现计算机系统中软硬件资源的自动管理。
8.2 什么叫中断系统?它具备什么功能?答:把能够实现中断全部功能的软件、硬件的总称称之中断系统。
不一致计算机的中断系统,其具体实现可能不尽一样,但中断系统的基本功能是相同的。
中断系统的基本功能如下:1.能实现中断响应、中断处理(服务)、中断返回与中断屏蔽。
这是中断系统最基本的功能。
2.能实现中断优先级排队(管理)。
即当有多个中断源同时申请中断时,CPU如何能够优先响应最紧急的中断申请。
3.能实现中断嵌套。
即当CPU正在为优先级较低的中断源服务时,具有较高优先级的中断源提出中断申请,如今中断系统应当同意较高优先级的中断源中断较低优先级的中断源,待较高优先级的中断处理完成后,再接着处理较低优先级的中断,这种中断服务程序再被中断的过程称之中断嵌套。
8.3 何谓非屏蔽中断与可屏蔽中断?答:非屏蔽中断是指用户不能用软件屏蔽的中断。
计算机组成原理课后答案第二版_唐朔飞_第五章
而程序中断方式虽然也是通过“程
序”传送数据,但程序仅对I/O传送阶 段进行控制,I/O准备阶段不需要CPU 查询。故CPU此时照样可以运行现行 程序,与I/O并行工作,大大提高了 CPU的工作效率。
3)显存中存放的是那种信息? 4)显存地址与屏幕显示位置如何 对应?
5)设置哪些计数器以控制显存访问与屏幕扫描 之间的同步?它们的模各是多少?
6)点时钟频率为多少?
解:1)显存最小容量=72×24×8 =1728B 2)ROM最小容量=64×8行×8列 = 512B(含字间隔1点,或512×7位) 3)显存中存放的是ASCII码信息。 4)显存每个地址对应一个字符显示位置,显示
解:程序查询接口工作过程如下(以输入
为例):
1)CPU发I/O地址地址总线接口设 备选择器译码选中,发SEL信号开命令接 收门;
2)CPU发启动命令 D置0,B置1 接 口向设备发启动命令设备开始工作;
3)CPU等待,输入设备读出数据 DBR; 4)外设工作完成,完成信号接口 B 置0,D置1; 5)准备就绪信号控制总线 CPU; 6)输入:CPU通过输入指令(IN)将 DBR中的数据取走;
N个数据所需的处理时间=P×N+Q秒 平均每个数据所需处理时间= (P×N+Q)/ N 秒; 求倒数得: 该系统跟踪到的每秒中断请求数=N/ (P×N+Q)次。
19. 在程序中断方式中,磁盘申请 中断的优先权高于打印机。当打印机正 在进行打印时,磁盘申请中断请求。试 问是否要将打印机输出停下来,等磁盘 操作结束后,打印机输出才能继续进行? 为什么?
微机原理复习题(含答案)
微机原理复习题(含答案)微机原理及应⽤复习题(1)⼀、选择题1.MOV AX, ES:[BX][SI]的源操作数的物理地址是()。
A.16×(DS)+(BX)+(SI) B.16×(ES)+(BX)+(SI)C.16×(SS)+ (BX)+(SI) D.16×(CS)+(BX)+(SI)2.8086CPU内标志寄存器中的控制标志位占()。
A.9位 B.3位 C.6位 D.16位3.Reset信号到来后,8088CPU的启动地址为()。
A.00000H B.FFFFFH C.FFFF0H D.0FFFFH4.典型的计算机硬件结构主要包括三个组成部分,它们分别是()。
A.CPU、存储器、I/O设备 B.CPU、运算器、控制器C.存储器、I/O设备、系统总线 D.CPU、控制器、I/O设备5.CPU通过总线对内存或I/O端⼝存取(读或写)⼀个字节所需的时间是⼀个()。
A.总线周期 B.时钟周期 C.指令周期D.存储器周期6.⼗进制数36.875转换成⼆进制数是()。
A.110100.01 B.100100.111 C.100110.11 D.100101.1017.⼗进制数-75⽤⼆进制数10110101表⽰,其表⽰⽅式是()。
A.原码 B.补码 C.反码 D.ASCⅡ码8.8086/8088可⽤于间接寻址的寄存器有()。
A.2个 B.4个 C.6个 D.8个9.堆栈的⼯作⽅式是()。
A.先进后出 B.可以根据地址选择存取C.先进先出 D.随机存取10.寄存器间接寻址⽅式中,操作数在()中。
A.通⽤寄存器 B.堆栈 C.内存单元 D.段寄存器11.直接、间接、⽴即三种寻址⽅式指令的执⾏速度,由快⾄慢的排序为()。
A.直接、⽴即、间接 B.直接、间接、⽴即C.⽴即、直接、间接 D.不⼀定12.微机控制总线上传送的是()。
A.存储器和I/O设备向CPU传送的状态信号 B.存储器和I/O接⼝的地址C.CPU向存储器和I/O设备发出的命令信号 D.A和C 13.将累加器AX的内容清零的不正确操作是()。
完整版计算机组成原理简答题
完整版计算机组成原理简答题计算机组成原理简答题第四章1、存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。
Cache-主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。
主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。
综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。
主存与CACHE之间的信息调度功能全部由硬件自动完成。
而主存与辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。
因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。
2. 说明存取周期和存取时间的区别。
解:存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。
即:存取周期 = 存取时间 + 恢复时间3. 什么叫刷新?为什么要刷新?说明刷新有几种方法。
解:刷新:对DRAM定期进行的全部重写过程;刷新原因:因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;常用的刷新方法有三种:集中式、分散式、异步式。
集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在CPU访存死时间。
分散式:在每个读/写周期之后插入一个刷新周期,无CPU访存死时间。
异步式:是集中式和分散式的折衷。
4. 半导体存储器芯片的译码驱动方式有几种?解:半导体存储器芯片的译码驱动方式有两种:线选法和重合法。
微机原理与接口技术重点概念
1.什么是中断?什么是中断向量?中断向量表的地址范围?答:中断就是CPU在执行当前程序时由于内外部事件引起CPU暂时停止当前正在执行的程序而转向执行请求CPU暂时停止的内外部事件的服务程序,该程序处理完后又返回继续执行被停止的程序;中断向量是中断处理子程序的入口地址;地址范围是00000H-003FFH。
2.微机系统的硬件由哪几部分组成?答:微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。
3.什么是微机的总线,分为哪三组?答:是传递信息的一组公用导线。
分三组:地址总线,数据总线,控制总线。
4.8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什么?答:总线接口部件(BIU)功能:根据执行单元EU的请求完成CPU与存储器或IO设备之间的数据传送。
执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接口部件进行算术运算。
5.8086指令队列的作用是什么?答:作用是:在执行指令的同时从内存中取了一条指令或下几条指令,取来的指令放在指令队列中这样它就不需要象以往的计算机那样让CPU轮番进行取指和执行的工作,从而提高CPU的利用率。
6.8086的存储器空间最大可以为多少?怎样用16位寄存器实现对20位地址的寻址?完成逻辑地址到物理地址转换的部件是什么?答:8086的存储器空间最大可以为2^20(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存储单元时,先将段寄存器内的内容左移4位,然后加上指令中提供的16位偏移地址形成20位物理地址。
7.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?答:指令的物理地址为21F00H;CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
80x86实模式系统允许引入的中断可达256个,因此需 占用1K字节的存储空间来存放这256个中断服务程序 入口地址。 80x86实模式系统把中断服务程序入口地址信息设置在 存储器的最低端,即从00000H~003FFH的1K字节存 储空间中。 这一存储空间就叫中断向量表,如图13.6所示。
在中断向量表中,各中断向量按中断类型码从0到255 顺序存放。这样,知道了中断类型码,很快就可算出 相应中断向量的存放位置,从而取出中断向量。 例如,中断类型码为27H的中断所对应的中断向量应存 放在从0000H:009CH开始的4个连续字节单元中。 如果相应存储单元的内容如图13.7所示,那么27H号中 断的中断服务程序的入口地址即为8765H:4321H。
2. 中断嵌套 当CPU正在执行优先级较低的中断服务程序时,允许 响应比它优先级高的中断请求,而将正在处理的中断 暂时挂起,这就是中断嵌套。 此时,CPU首先为级别高的中断服务,待优先级高的 中断服务结束后,再返回到刚才被中断的较低的那一 级,继续为它进行中断服务。 如图13.4所示。
陷阱是在引起异常的指令执行之后触发的一种异常。 在转入异常处理程序时,引起陷阱的指令已完成。陷 阱处理程序执行完,返回到引起陷阱指令的下一条指 令。软中断指令INT n 是陷阱的例子。 中止是在系统出现严重的不可恢复的事件时触发的一 种异常。产生中止后,正执行的程序不能恢复执行, 系统要重新启动才能恢复正常运行状态。
13.1.2 中断响应和处理过程
CPU在执行每条指令的适当时刻,检测中断请求信号。 若发现中断请求信号有效,对于可屏蔽中断还必须 CPU开放中断,则在下一机器周期进入中断响应周期。 进入中断响应周期后,中断响应和处理的过程如下:
1. 关中断 CPU在响应中断时,发出中断响应信号INTA,同时内 部自动地关中断,以禁止接受其他的中断请求。 2. 保存断点 把断点处的指令指针IP值和CS值压入堆栈,以使中断 处理完后能正确地返回主程序断点。
例13.3 中断类型码为17H,若中断服务程序的入口 地址为2340H:7890H,试指出中断向量表中存放该中 断向量的4个字节单元的地址及内容。 解: 由于中断类型码为17H,所以中断向量表中存放相 应中断向量的4个字节单元的地址分别为0000:005CH、 0000:005DH、0000:005EH、0000:005FH,4个字节 单元的内容分别为 。
图13.7 中断向量的存放格式
0000:009FH
87H 65H
43H 21H
0000:009CH
由于中断向量在中断向量表中是按中断类型码(也称 中断向量号)顺序存放的,所以每个中断向量的地址 可由中断类型码乘以4计算出来。 CPU响应中断时,只要把中断类型码N左移2位(乘以 4),即可得到中断向量在中断向量表中的对应地址 4N(该中断向量所占4个字节单元的第一个字节单元的 地址)。 然后把由此地址开始的两个低字节单元的内容装入IP 寄存器: IP ← (4N, 4N+1) 再把两个高字节单元的内容装入 CS 寄存器: CS ←(4N+2, 4N+3)
INT n 指令
断点中断 溢出中断 单步中断 (INT 3) (INTO, OF=1) (TF=1)
除法错 中断
软件中断(内部中断)
中 断 控 制 器 (8259A)
IRQ7
. . . .
可 屏 蔽 中 断
硬件中断(外部中断)
关于中断分类的补充说明
为了支持多任务和虚拟存储器等功能,80386及以上 CPU 把外部中断称为“中断”(interrupt),把内部中断 称为“异常”(exception) 。与8086一样,它也最多 处理256种中断和异常。 根据引起异常的程序是否可被恢复和恢复点的不同, 又把异常分为三类: 故障(fault) 陷阱(trap) 中止(abort) 把对应的异常处理程序分别称为故障处理程序、陷阱 处理程序和中止处理程序。
00000H 00001H
低地址
3×4=000CH 0000CH (中断向量表地址) (0000:000CH)
OOH(IPL) 0AH(IPH) 00H(CSL) 1EH(CSH)
1EA00H (1E00:0A00H) FFFFFH 中断服务程序
高地址
例13.2 中断类型码为20H,则中断服务程序的入口地址 存放在中断向量表从0000:0080H开始的4个字节单元 中。若这4个字节单元的内容分别为: (0000:0080H)= 10H (0000:0081H)= 20H (0000:0082H)= 30H (0000:0083H)= 40H 试指出相应的中断服务程序的入口地址。 解: 中断服务程序的入口地址为 。
第 13 章 中断系统
本章主要内容
(1)中断及中断处理的基本概念 (2)80x86实模式中断系统 (3)可编程中断控制器8259A
13.1 基本概念
13.1.1 中断的定义 在程序运行时,系统外部、内部或现行程序本身若出 现紧急事件,处理器必须立即强行中止现行程序的运 行,改变机器的工作状态并启动相应的程序来处理这 些事件,然后再恢复原来的程序运行,这一过程称为 中断。
图13.2 软件查询流程图
保护现场 Y
A申请服务?
N B申请服务?
N C申请服务? N 恢复现场 Y Y
外设A中断服务程序
外设B中断服务程序
外设C中断服务程序
(2) 菊花链优先级排队电路 菊花链优先级排队电路是一种优先级管理的简单硬件 方案。它是在每个设备接口设置一个简单的逻辑电路, 以便根据优先级顺序来传递或截留CPU发出的中断响 应信号INTA,以实现响应中断的优先顺序。 典型的菊花链优先级结构如图13.3(a) 所示。
图13.4 中断嵌套示意图
STI
STI
. . . .
. . IRET . .
. . . IRET .
中断嵌套的深度(中断服务程序又被中断的层次)受 到堆栈容量的限制。 所以在编写中断服务程序时,必须要考虑有足够的堆 栈单元来保留多次中断的断点信息及有关寄存器的内 容。
13.2
80x86实模式的中断系统
13.2.1 中断的分类
中断分类的方式很多。 根据进入中断的方式可分为自愿中断和强迫中断。 根据其重要性可分为可屏蔽中断和不可屏蔽中断。 根据中断源的位置可分为内部中断和外部中断等等。 如图13.5所示。
图13.5 80x86实模式系统的中断分类
非屏蔽中断请求
NMI 中 断 逻 辑 INTR IRQ0
13.2.2 中断向量表
所谓中断向量(interrupt vector),实际上就是中断 服务程序的入口地址,每个中断类型对应一个中断向 量。 每个中断向量占4字节的存储单元。 其中: 前两个字节单元存放中断服务程序入口地址的偏移量 (IP),低字节在前,高字节在后; 后两个字节单元存放中断服务程序入口地址的段基值 (CS),也是低字节在前,高字节在后。
13.2.3 外部中断
由外部的中断请求信号启动的中断,称为外部中断,也 称硬件中断。 80x86 CPU为外部中断提供两条引线,即NMI和INTR, 用来输入中断请求信号。 1. 非屏蔽中断 从NMI引脚进入的中断为非屏蔽中断,它不受中断允 许标志IF的影响。 非屏蔽中断的类型码为2,因此,非屏蔽中断处理子程 序的入口地址存放在08H、09H、0AH和0BH这4个字节 单元中 。
图13.3 菊花链优先级结构 (a) 菊花链排队电路
设备1
设备2
设备3
接口
中断响应信号
中断请求
接口
接口
菊花链 逻辑
菊花链 逻辑
菊花链 逻辑
CPU
INTA
INTR
集电极开路门
+5V
图13.3 菊花链优先级结构 (b) 菊花链逻辑
中断响应信号 (低电平有效)
中断 请求 信号 (高电平有效)
INTA
INTR
3. 识别中断源 CPU要对中断请求进行处理,必须找到相应的中断服 务程序的入口地址,这就是中断的识别。 4. 保护现场 为了不使中断服务程序的运行影响主程序的状态,必 须把断点处有关寄存器(指在中断服务程序中要使用的 寄存器)的内容以及标志寄存器的状态压入堆栈保护。
5. 执行中断服务程序 在执行中断服务程序中,可在适当时刻重新开放中断, 以便允许响应较高优先级的中断。 6. 恢复现场并返回 即把中断服务程序执行前压入堆栈的现场信息弹回原 寄存器,然后执行中断返回指令,从而返回主程序继 续运行。
图13.6 实模式系统的中断向量表
类型255 (十进制) 供用户定义的中断 (共224个) ︽︾ 类型32 类型31 (十进制) 保留的中断 (共27个) ︽︾ 类型5 类型4 类型3 专用的中断 (共5个) 类型2 类型1 类型0 CS IP CS IP CS IP CS IP CS IP
CS IP
这就是使程序转入中断类型码为N的中断服务程序的控 制过程,如下面例1所示。 至于中断类型码N的来源,对于不同的中断类型(内部 中断、外部中断),情况有所不同,详见后述。
例13.1 若中断类型码为3,则由中断类型码取得中断服 务入口地址的过程如图13.8所示。
图13.8 根据中断类型码取得中断服务程序入口地址
13.1.3
中断优先级和中断嵌套
1. 中断优先级 在实际系统中,多个中断请求可能同时出现,但中断 系统只能按一定的次序来响应和处理,这时CPU必须 确定服务的次序,即根据中断源的重要性和实时性, 照顾到操作系统处理的方便,对中断源的响应次序进 行确定。 这个响应次序称为中断优先级(priority)。