中断 微机原理与接口技术.docx
《中断 微机原理与接口技术.docx》由会员分享,可在线阅读,更多相关《中断 微机原理与接口技术.docx(8页珍藏版)》请在冰点文库上搜索。
![中断 微机原理与接口技术.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/5163b61f-d4bf-43d9-a256-042c83def45f/5163b61f-d4bf-43d9-a256-042c83def45f1.gif)
中断微机原理与接口技术
88,中断向量地址是指(B)
A.发出中断请求的中断源地址
B.指出中断服务子程序的入口地址的地址
C.是中断服务子程序的入口地址
D.中断源请求逻辑电路的地址
89,中断响应后系统要做的第一件事是()
A.保护断点B.执行中断服务子程序
C.寻找中断源D.关中断
90,中断响应后,保护断点的目的是()
A.便于寻找中断源
B.转到中断服务子程序
C.从中断服务子程序返回被中断的地方
D.便于多级中断
91,保护断点的方法是()
A.将断点地址送到指定的寄存器中
B.将断点地址通过访问指令送到指定的内存单元中
C.将断点地址通过指令送到中断向量表中
D.由硬件将断点地址自动压入堆栈中
92,CPU接到中断请求后,要给中断响应的基本条件是(B)
A.系统处于开中断状态
B.CPU执行完一条指令,且为开中断状态
C.当前无更高的中断请求,且为开中断状态
D.系统为开中断,申请中断的设备,中断优先级最高的条指令执行之后
93,在中断处理之前,应进行现场保护,所谓现场保护是指(A)
A.保护此中断服务子程序中要用的各种寄存器(含标志寄存器)中的内容
B.保护中断返回的断点地址
C.保护中断向量
D.保护标志寄存器
94,已知某系统共有4台外设,即A,B,C,D,每台外设都可能发生中断,系统规定中断优先级为A最高,D最低,B、C两级介于A,D之间,当CPU正在执行C设备的中断服务程序时,其余三台外设同时发生中断请求,此时,IF=1,问CPU响应哪台外设请求(B)
A.B设备B.A设备
C.都不响应D.依A、B、D次序都响应
95,已知某系统共带三台外设,即X、Y、Z,每台外设都能发出中断,它们的中断优先级为X>Y>Z,当前在执行Z中断服务程序时,X,Y同时发出中断请求,若此时IF=0,问CPU响应哪台外设请求(D)
A.X设备B.Y设备
C.无响应X,后响应YD.都不响应
96,在8088/8086系统中使用8259A作为中断控制器,试问8259A中的中断屏蔽寄存器(IMR)中的屏蔽位与CPU的标志寄存器中的IF位对中断影响是什么关系(B)
A.屏蔽位与IF位都用来控制某一个中断源的中断请求
B.屏蔽位只使对应中断起开中断或关中断功能,而IF位对全部可屏蔽中断源起开中断或关中断功能。
C.屏蔽位和IF位功能完全一样,可互相替代。
D.屏蔽位只对一个中断源屏蔽,而IF位对所有中断源(含内中断和外中断)的中断屏蔽
98,中断过程与子程序之间的过程比较,下面哪条是错误的(B)
A.中断过程与子程序调用过程都需保护断点
B.中断过程与子程序调用过程都需保护标志寄存器
C.中断过程与子程序调用过程都要改变程序执行方向
D.中断过程是随机的,而调用子程序是事先安置好的
27,已知一个中断源其中断类型码为OAH,当该中断源发生中断请求时,根据给出的部分中断向量表,求出该中断源的中断服务程序的入口地址,采用箭头表示送到指定的寄存器。
28,有三个可屏蔽的中断源A、B、C,它们的中断服务程序入口地址分别为INTRA、INTRB、INTRC,若中断优先级排次序为A>B>C,且CPU开中断,请讨论下面几种情况。
①当三个中断源同时发出中断请求,问CPU响应何中断请求
②CPU正在执行INTRB程序期间,发生A中断请求,但CPU不响应这是为什么?
29,有三个中断源X、Y、Z,在中断过程中发生中断嵌套关系如下图所示,试问
①X、Y、Z三个中断源优先级排列次序?
②每个中断服务程序最末条指令都是IRET中断返回指令,为什么在执行到INTRZ服务程序IRET时,不返回到主程序断点地址AD1处执行,而是返回到INTRY服务程序断点地址AD3执行?
30,已知某微机系统中共有14个外设即A0~A13,都采用中断工作方式,要求使用8259A芯片作为中断控制器,试求
①若用8259A多少片才能把14个中断源都连入到中断控制器中
②若14个中断源,优先级次序为A0>A1>A2……A13,即顺序递减,请画出各片8259A中断引脚的连入中断源的关系及INTR的输出连接关系?
当A7~A137个中断源优先级提高到比A0低而高于A2,其它不变,画出8259A的连接关系图。
16,某微机有4级中断,其中断响应及处理优先级从高到低为
1→2→3→4(即1级最高,4级最低),假定在运行用户程序过程中,同时出现2级和3级中断请求,而在处理2级中断过程中,又同时出现1级和4级中断请求,试问各级中断处理完成的顺序是什么?
请画出处理该多重中断示意图。
17,自定义一个中断,中断编码为64H,中断服务程序的入口符号地址为INTPRO,用指令序列为该中断类型设置中断向量(已知中断向量表首地址为0)。
XORAX,AX;
MOVES,AX
MOVAX,OFFSETINTPRO;
MOVES:
[0190H],AX;
MOVAX,SEGINTPRO;
MOVES:
[0192H],AX
27,一片8259可以管理__
(1)__级中断,通过级联8259最多能管理__
(2)__中断。
(1)A.4B.8C.16D.32
(2)A.16B.32C.64D.128
28,8259内部有4个初始化命令字寄存器,但仅两个地址,即奇地址和偶地址,CPU对8259初始化编程,为了防止初始化命令字装错,需要____。
A.每个命令字用不同的标识位
B.初始化流程要遵守固定的次序
C.用地址和读写控制信号来区别
D.A和B的综合
37,若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为10H~17H,中断源请求线与8259A的IRQ2相连,试问:
该中断源的中断向量地址是什么?
若中断服务程序入口地址为4000H:
5678H,则中断向量在中断向量表中是如何存放的?
该中断源类型码为12H,中断向量地址为12H×4=00048H, 00048H~0004BH单元依次存放78H,56H,00H,40H
•8259A工作于单片方式
•系统总线直接相连,端口地址:
20H、21H
•IR0~IR7中断类型号为8~F
•中断源sp接IR3,边沿触发
•CPU响应后,对中断次数进行计数.
CODESEGMENT
START:
ASSUMECS:
CODE
MOVAL,13H;8259初始化
MOVDX,20H
OUTDX,AL;ICW1(20H)
MOVAL,08H
MOVDX,21H;ICW2(21H)
OUTDX,AL
MOVAL,09H;ICW4(21H)
OUTDX,AL
WRINTVER:
MOVAX,0H;填中断矢量表
MOVES,AX
MOVDI,002CH
LEAAX,INTQ3
cld
STOSW
MOVAX,CS;movax,segintq3
STOSW
MOVAL,0F7H;OCW1(开放IRQ3)
OUT21h,AL
MOVBYTEPTRDS:
[0601H],0;TIME=0
STI
WATING:
JMPWATING;等待中断
RET
INTQ3:
CLI
MOVAL,20H;OCW2,设EOI方式结束中断MOVDX,20H
OUTDX,AL
ADDBYTEPTRDS:
[0601H],01H;IRQ3申请次数加1
INTRE3:
JMPINTRE3
STI
IRET
CODEENDS
ENDSTART
7.13
stacksegmentstack'stack'
dw32dup(0)
stackends
datasegment
IBUFDB255,0,255DUP(0)
BCDMMDB127DUP(0)
dataends
codesegment
beginprocfar
assumess:
stack,cs:
code,ds:
data
pushds
subax,ax
pushax
MOVDS,AX;DS为中断向量表的段首址
MOVAX,SEGI79;中断服务程序的段地址填入中断向量表
MOVDS:
1E6H,AX;1E6H=79H*4+2
MOVAX,OFFSETI79;中断服务程序的偏移地址填入中断向量表
MOVDS:
1E4H,AX
movax,data
movds,ax
MOVDX,OFFSETIBUF;键入一串十进制数
MOVAH,10
INT21H
MOVDI,OFFSETBCDMM;建立压缩BCD数存放区的地址指针
INT79H
ret
beginendp
I79PROCFAR
INCDX;DX指向IBUF的第二单元
MOVBX,DX
ADDBL,[BX];BX指向字符串的最后一个字符
INCDX;DX指向第一个字符,即IBUF的第三单元
MOVCL,4;二进制数移4位即BCD数移1位,移位次数送CL
I790:
CMPBX,DX
JEI792;BX等于DX,则还有最高位1位待处理
JAI791;BX高于DX,继续处理2位BCD数
IRET;BX低于DX结束
I791:
MOVAX,[BX-1];取2位BCD数的字符
SUBBX,2;调整字符串指针
ANDAH,0FH;BCD字符转变为BCD数保留在AH的低4位
SHLAL,CL;BCD字符转变为BCD数保留在AL的高4位
ORAL,AH;存2位压缩BCD数
INCDI;调整压缩BCD数存放地址指针
JMPI790
I792:
MOVAL,[BX];取第一个字符,即BCD数的最高位字符
ANDAL,0FH;;将BCD数字符转换为BCD数
MOV[DI],AL;存最高位BCD数
IRET
I79ENDP
codeends
endbegin