JZ LO ;若AL=0,转LO执行 JMP NEXT
L100:INC [C0+1] ;数100的个数加1
JMP NEXT L60:INC C0
JMP NEXT
LO:INC C0十2 ;AL=0,零计数器加1 NEXT:INC BX
LOOP LP JMP DONE
DONEI:MOV C0,0 FFH DONE:HLT
第9章
一、选择题
1.设(AX)=9305H,(BX)=6279H,若ADD BX,AX指令后接着INTO指令则会 B 。
A. 进人 INTO中断服务子程序 B. 执行 INTO后面的指令 C. 死机 D. 显示器显示 OVERFLOW
2.8259A工作在8086/8088模式时,初始化命令字ICW2用来设置 D 。
A. 中断向量地址的高8 位 B. 中断向量地址的高5位 C. 中断向量的高5位 D. 中断向量号的高5位
3. 8259A需 ____A___ 片级连可以扩展为64级优先级。 A. 9片 B. 8片 C. 7片 D. 6片
4. 以下几个条件中, B 不是8259A工作在全嵌套方式下的必要条件。
A. 8259A置非自动中断结束方式 B. 当前服务寄存器ISR已设置 C. 中断服务程序中开中断 D. 8086CPU中IF=1
5. 8086 CPU用于中断请求的输入引脚信号是 A 。
A. INTR和 NMI B. INTA和 NMI C. INTR和INTA D. INTE和IRET
6. 8086 CPU响应中断时,自动压入堆栈保护的内容可能有 _____D_______。
A. AX,BX的内容 B. CX,SP的内容 C. CS,IP,SP的内容 D. CS,IP和Flag的内容
7. 微机系统中若用4片8259A构成主、从两级中断控制逻辑,接至CPU的可屏蔽中断请求线INTR上,最多可扩展为 B 级外部硬中断。
A. 32 B. 29 C. 28 D. 24
8. 下列说法中哪个是错误的?(B)
A.8259A的自动EOI方式只适用于不出现多重中断的场合
B.8259A的初始化结束后,在写入OCW2之前它按完全嵌套方式工作 C.在PC/XT下不能扩展新的8259A
D.8259A的8个中断源的中断矢量在中断矢量表中是连续存放的
9.8086对外设向CPU引脚INTR发中断请求而引起的中断响应周期需( B )个总线周期,在第一个总线周期8086CPU发出/INTA 控制信号。
A. 1 B. 2 C. 3 D. 4
10.中断指令INT 17H的中断服务程序的入口地址放在中断向量表地址( C )开始的4个存贮单元内。
A. 00017H B. 00068H C. 0005CH D. 0005EH
11.8086系列微机响应外部中断后,从数据总线上获取的是 A 。
A.中断向量号 B.中断向量地址 C.中断服务程序第一条指令的操作码
12.向8259A写入 C 时,必须按规定的流程进行,不允许颠倒顺序。
A.初始化命令字和操作命令字 B.操作命令字 C.初始化命令字
二、填空题
1. 在8086 CPU系统中,设某中断源的中断类型码为08H,中断矢量为0100H:1000H,则相应的中断矢量存储
地址为 00020H ;从该地址开始,连续的4个存储单元存放的内容依次为 00H、10H、00H、01H 。 2. 8259A工作在8086/8088模式,中断向量字节ICW2=70H,若在IR3处有一中断请求信号,这时它的中断向
量号为 73H ,该中断的服务程序入口地址保存在内存地址为,1CC H至 1CF H的 4 个单元中。
3.下面程序为中断向量设置程序,程序设置的中断类型号为09h,入口地址为5678:1234H。
ES_DATA SEGMENT AT 0
ORG 24H
INT_VAR LABEL WORD ES_DATA ENDS
CS_CODE SEGMENT ????
XOR AX,AX MOV ES,AX MOV AX,1234H
MOV ES:INT_VAR,AX MOV AX,5678H
MOV ES:INT_VAR,AX ????
CS_CODE ENDS
4.有一中断类型号为04H,则其对应的中断向量表首地址是__00010H 或 0000H:0010H。 三、问答题
1. 中断类型码为14H的中断向量存放在哪些存储器单元中?
答:因中断类型码为14H,故其中断向量的起始地址为4×14H=00050H。中断向量的偏移量部分存放在0050H和0051H单元中,段基址部分存放在0052H和0053H单元中。
2. 以下为某外部中断源设置中断向量的程序段:
PUSH MOV MOV CLD MOV MOV
ES AX,0 ES,AX DI,24H AX,0200H
STOSW MOV AX,1000H
STOSW POP ES
请问:该外中断的类型码是多少?程序段为它设置的中断向量是什么?
答:从程序可看出,该外中断的中断向量存放在ES:DI所指单元即0000:0024H单元,所以该外中断的类型码N=00024H÷4=9;该中断向量为1000H:0200H或写为10200H。
3. 分别写出下列情况下应向8259A写入的命令字:
① 读中断请求寄存器IRR的值; ② 读中断服务寄存器ISR的值; ③ 读查询方式下的查询状态字; ④ 发一般的中断结束命令EOI。
答:①OCW3=0AH ②OCW3=0BH ③OCW3=OCH ④OCW2=20H
4. 设某8088系统采用2片8259级联的方式来管理15个中断源。主、从片分别占用口地址20H、21H和0A0H、0A1H,从片的INT接入主片的IR2脚。要求主片8259工作于特殊的全嵌套方式、特殊屏蔽模式,优先权固定,中断请求信号为边沿触发,使用一般的中断结束EOI命令,主片的中断类型码从08H起;从片工作于一般全嵌套方式、一般屏蔽方式,优先权不固定(一般旋转),中断源高电平触发,自动结束中断,中断类型码从70H起。请写出能够完成上述设置的初始化程序。
答:由题意可知,主8259的命令字分别为:ICW1=11H, ICW2=08H,ICW3=04H,ICW4=11H,OCW3=68H;从8259的初始化命令字分别为:ICW1=19H,ICW2=70H,ICW3=02H,ICW4=03H,OCW2=80H。(注意题中未给明的条件一律以默认情况对待,即命令字中对应位设置为0)
初始化程序段:
?? CLI MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT
AL, 20H, AL, 21H, AL, 21H, AL, 21H, AL, 20H, AL, 0A0H, AL, 0A1H, AL, 0A1H, AL, 0A1H, AL, 0A0H,
11H AL 08H AL 04H AL 11H AL 68H AL 19H AL 70H AL 02H AL 03H AL 80H AL
; 从片的OCW2
; 从片的ICW4
; 从片的ICW3
; 从片的ICW2
; 主片的OCW3 ; 从片初始化 ; 从片的ICW1
; 主片的ICW4
; 主片的ICW3
; 主片的ICW2
; 主片初始化 ; 主片的ICW1
??
5. 某系统内有8个INTR外中断源,用一片8259A管理8级中断源。设8259占用口地址24H、25H,各中断源的类型码为40H~47H,各级中断所对应的服务程序入口地址分别为1000H:0000H、2000H:0000H、…、8000H:0000H。试写出初始化程序,并编程向中断向量表中置入各中断向量。
答:由题意知,8259的命令字分别为:ICW1=13H,ICW2=40H,ICW4=01H。(注意题中未给明的条件一律以默认情况对待,即命令字中对应位设置为0)
初始化程序段:
?? MOV OUT MOV OUT MOV OUT ??
向中断向量表中置入各中断向量的程序段如下:
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
AL, 24H, AL, 25H, AL, 25H,
13H AL 40H AL 01H AL
START: ??
PUSH MOV MOV MOV MOV MOV MOV
LOP:
MOV MOV ADD ADD LOOP POP
?? CODE ENDS END START
DS AX, DS, SI, AX, BX, CX, [SI], [SI+2], AX, SI, LOP DS
0 AX 40H*4 1000H 0000H 8 BX AX 1000H 4
; 将AX:BX中的向量放到DS:SI所指单元中
; AX:BX中为中断向量值 ; 共需存放8个向量
; DS:SI中为中断向量存放地址
; 40H号中断的中断向量存放在地址40H*4处
6. 某8088系统的INTR由一片8259A管理,其端口地址为20H、21H。要求CPU采用中断方式把一个长100字节的数据块从首址为AREA的存储区传送到端口地址为37FH的接口上,若该中断的类型码为0AH,试写出完整的主程序和中断服务程序。
答:以下程序假设这100个数据一次传完:
DATA SEGMENT
AREA DB 100 DUP(?) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA START PROC FAR PUSH
MOV PUSH
MOV MOV
CLI
AL, 0AH AH, 35H 21H ES BX DS
AX, SEG RECIVE DS, AX
DX, OFFSET RECIVE AL, 0AH AH, 25H 21H DS AL, 21H
; 读原IMR值并保存
; 将当前中断服务程序入口地址送向量表
; 取当前中断服务程序入口的偏移量 ; 中断类型号为0AH
; 取当前中断服务程序入口的段基址
; 取0AH号中断的原中断向量并保存
DS AX, 0 AX AX, DATA DS, AX
; 主程序
; 以下设置中断向量 MOV MOV INT PUSH PUSH PUSH MOV MOV MOV MOV MOV INT POP IN
; 以下初始化8259A
MOV AND OUT STI
HLT
CLI POP POP MOV MOV INT MOV OUT RET START ENDP
BP, AX AL, 0FBH 21H, AL
; 重新设置IMR,开放IRQ2
; 等待IRQ2中断 ; 后续处理 ; 恢复原中断向量
DX DS AL, 0AH AH, 25H 21H
AX, BP 21H, AL
; 恢复原IMR
RECIVE PROC FAR
PUSH
PUSH PUSH PUSH
AX CX DX SI
; 中断服务子程序
MOV MOV MOV LOP: MOV OUT INC LOOP MOV OUT
POP POP POP
SI, OFFSET AREA DX, 037FH CX, 100 AL, [SI] DX, AL SI LOP AL, 20H 20H, AL SI DX CX AX
; SI指向需传送数据的首址
; 向8259A发结束中断命令
POP IRET RECIVE ENDP CODE ENDS
END MAIN
第6、7、8、10章
1、 设某8086系统中包含一片8253芯片,其系统结构示意图如图所示。要求8253完成以下功能:
1) 利用计数器0实现计数功能,计满50次向CPU发出中断请求。 2) 利用计数器1产生频率为1kHZ的方波。 3) 利用计数器2作定时时钟,定时周期为1s。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库微机原理补充习题(3)在线全文阅读。
相关推荐: