《微机原理及汇编语言习题.docx》由会员分享,可在线阅读,更多相关《微机原理及汇编语言习题.docx(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章 概述一、填空题1电子计算机主要由 运算器 、 控制器 、 存储器 、 输入设备 和 输出设备 等五部分组成。2 运算器 和 控制器 集成在一块芯片上,被称作CPU。3总线按其功能可分 数据总线 、 地址总线 和 控制总线 三种不同类型的总线。二、简答题1简述微处理器、微计算机与微计算机系统三个术语的内涵。答:微处理器是微计算机系统的核心硬件部件,它本身具有运算能力和控制功能,对系统的性能起决定性的影响。微处理器一般也称为CPU;微计算机是由微处理器、存储器、I/O接口电路与系统总线组成的裸机系统。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处
2、理系统。三者之间是有很大不同的,微处理器是微型计算机的组成部分,而微型计算机又是微型计算机系统的组成部分。2微型计算机系统总线从功能上分为哪三类?它们各自的功能是什么?答:微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类。地址总线用于指出数据的来源或去向,单向;数据总线提供了模块间数据传输的路径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的工作。三、选择题1下列无符号数中最小的数是(A)。A(01A5)H B(1,1011,0101)B C(2590)D D(3764)O2下列有符号数中最大的数是(D)。 A1002H B1001 0011 0010 11
3、00B C2570O D9614D3在机器数(A)中,零的表示形式是唯一的。A补码 B原码 C补码和反码 D原码和反码48位二进制数补码的数值表示范围为(A)。A. 128127 B127127C. 一129128 D128128第2章 微处理器与其结构一、填空题18086/8088 CPU执行指令中所需操作数地址由 EU 计算出 16 位偏移量部分送 BIU ,由 BIU 最后形成一个 20 位的内存单元物理地址。2用段基值与偏移量来指明内存单元地址的方式称为 逻辑地址 。38086 CPU使用 16 根地址线访问I/O端口,最多可访问 64K 个字节端口,使用 20 根地址线访问存储单元,
4、最多可访问 1M 个字节单元。4CPU取一条指令并执行该指令的时间称为 指令 周期,它通常包含若干个 总线 周期,而后者又包含有若干个 时钟 周期。二、单项选择题1某微机最大可寻址的内存空间为16MB,其CPU的地址总线至少应有(E)条。A26 B28 C20 D22 E2428086/8088 CPU中标志寄存器的主要作用是( D )。A检查当前指令的错误 B纠正当前指令执行的结果与错误C决定是否停机 D产生影响或控制某些后续指令所需的标志3指令指针IP的作用是( A )。A保存将要执行的下一条指令的地址B保存CPU要访问的内存单元地址C保存运算器运算结果内容D保存正在执行的一条指令4808
5、6CPU有两种工作模式,最小模式的特点是( A )。ACPU提供全部控制信号 B由编程进行模式设定 C不需要8282收发器 D需要总线控制器8288三、简答题18086/8088 CPU 分为哪两个部分?如何协调工作?答:EU是执行部件,主要的功能是执行指令和形成有效地址。BIU是总线接口部件,与片外存储器与I/O接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。28086/8088 CPU的地址总线有多少位?其寻址范围是多少
6、?答:8086/8088 CPU的地址总线共20 位,最大可寻址1MB空间。38086/8088 CPU使用的存储器为什么要分段?怎么分段?答:8086/8088为16位CPU,其内部的ALU、相关的地址寄存器(如SP、IP以与BX、BP、SI、DI)等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的直接寻址能力在64KB范围内。而实际上8086/8088有20条地址线,它的最大寻址空间为1MB。这就产生了一个矛盾,即如何用16位的地址寄存器去表示一个20位的存储器物理地址?实际使用的解决办法是:将1MB大小的存储空间分为若干“段”,每段不超过64KB。这样,一个
7、20位的物理地址就可以用“16位段基址:16位偏移量”的形式(称为逻辑地址)来表示了,其中段地址存放在8086/8088的段寄存器中。48086/8088 CPU 中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?答:8086/8088 CPU 中共有:8个16位的通用寄存器AX、BX、CX、DX 、BP、SP、SI、DI;2个变址寄存器SI、DI;2个指针寄存器BP、SP;其中BX、BP、SI、DI 亦可作地址寄存器。5什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?答:逻辑地址由两个16 位的部分即段基址和偏移量组成,一般在程序
8、中出现的地址都表示为逻辑地址形式;物理地址是一个20 位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上。由于8086/8088CPU 中的寄存器只有16 位长,所以程序不能直接存放20 位的物理地址,而必须借助逻辑地址,即用两个16 位的寄存器来表示物理地址。他们之间的关系是:物理地址段基址*16偏移量;另外,一个物理地址可对应多个逻辑地址。6设现行数据段位于存储器0B0000H0BFFFFH 单元,DS 段寄存器内容为多少?答: DS 段寄存器内容为0B000H。7给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C0E0H,求出该内存单元的物理地址。答
9、:物理地址:0C2EC0H。8怎样确定8086的最大或最小工作模式? 答:引线的逻辑状态决定8086的工作模式,引线接高电平,8086被设定为最小模式,引线接低电平,8086被设定为最大模式。98086基本总线周期是如何组成的?答:基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。10有一个由20个字组成的数据区,其起始地址为610AH:1CE7H。试写出该数据区首末单元的实际地址PA。首单元地址:610A0H+1CE7H=62D87H末单元地址:62D87H27H=62DAEH11有两个16位的字31DAH、5E7FH,它们在8086系统存储器中的地址为001
10、30H和00135H,试画出它们的存储器示意图。地址内容00130H0DAH00131H31H00132H00133H00134H00135H7F00136H5E第3章 8086 CPU指令系统一、判断题1MOV AX,BP的源操作数物理地址为16(DS)+(BP)。()2OUT DX,AL指令的输出是16位操作数。()3不能用立即数给段寄存器赋值。 ()4所有传送指令都不影响PSW寄存器的标志位。()5堆栈指令的操作数均为字。()6段内转移指令执行结果要改变IP,CS的值。()二、单项选择题1寄存器间接寻址方式中,操作数在(C)中。A. 通用寄存器 B. I/O端口 C. 存储单元 D. 段
11、寄存器2(A)寻址方式的跨段前缀不可省略。A. DS:BP B. DS:SI C. DS:DI D. SS:BP3假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSH AX后,(SP)=(C)。A. 0014H B. 0011H C. 0010H D. 000FH4用BP作基址变址寻址时,操作数所在的段是当前(C)。A. 数据段 B. 代码段 C. 堆栈段 D. 附加段8已知(SI)0004H,(DS)8000H,(80004H)=02H,(80005H)=C3H。指令LEAAX,SI执行后(AX)( C )。A. 0002H B. 0005H C. 0004H
12、D. C302H三、多项选择题1下列指令中源操作数使用寄存器寻址方式的有(BF)。A. MOV BX,BUFSI B. ADD SI+50,BX C. SUB AX,2 D. CMP AX,DISPDI E. MUL VARBX F. PUSH CX2将累加器AX的内容清零的正确指令是(BCD)。A. CMP AX,AX B. SUB AX,AXC. AND AX,0 D. XOR AX,AX3正确将字变量WORD VARR偏移地址送寄存器AX的指令是(CD)。A. MOV AX,WORD VARR B. LES AX,WORD VARRC. LEA AX,WORD VARR D. MOV A
13、X,OFFSET WORD VARR4调用CALL指令可有(ABDE)。A. 段内直接 B. 段内间接 C. 短距离(SHORT)D. 段间直接 E. 段间间接58086指令的操作数可能有(ABC)。A. 0 B. 1 C. 2 D. 3四、填空题1与指令MOV BX,OFFSET BUF功能相同的指令是 LEA BX,BUF。2假设(BX)= 0449H,(BP)= 0200H,(SI)= 0046H,(SS)= 2F00H,(2F246H)= 7230H则执行XCHG BX,BP+SI指令后,(BX)= 7230H 。3设有100个字节数据(补码),存放在数据段中EA2000H的存储单元中
14、。以下程序应该从该数据区中找出最小的一个数据,并存入EA2100H单元中,请将下面程序补充完整。MIN:MOVBX, 2000H MOVAL,BXMOVCX, 99 LOOP1:INCBXCMPAL,BX JLE LOOP2MOV AL,BXLOOP2:DEC CXJNZ LOOP1 MOV 2100H,AL7MOV AX,ES:BXSI中,源操作数的物理地址计算式是:(ES)16(BX)(SI)。五、综合题1请指出以下各指令的源、目的操作数所使用的寻址方式。(1)MOVSI,2100H(2)SBB DISPBX, 7(3)AND DI,AX(4)ORAX,609EH(5)MOVBXDI30H
15、,CX(6)PUSH ES:BP答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址(3)源操作数:寄存器寻址;目的操作数:变址寻址(4)源操作数:直接寻址; 目的操作数:寄存器寻址(5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址2请指出下列各条指令的错误,并改正。(1) ADDAX,BXBP6(2) PUSHDL(3) INAX,3FH (4) OUT3FFH,AL(5) POPAX(6) SHLBX,5(7) INT300(8) XCHGDX,0FFFH
16、(9) MOVAH,BX(10) MOVAX,OFFSET SI(11) MOVCS,AX(12) MOV DS,ES答: (1)不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADDAX,BXDI6(2)堆栈操作应以字为单位进行,而DL是一个字节。可改为:PUSH DX(3)在输入/输出指令中,8位端口地址应直接写在操作数处。可改为:INAX,3FH(4)端口地址3FFH已超出8位二进制表示范围,16位端口地址应存于DX。可改为:MOVDX,3FFH OUT DX,AL(5)AX不能用于间接寻址,间接寻址只能用BX、BP、SI、DI四个寄存器之一。可改为:POPBX(6)当逻辑移位
17、的次数大于1时,应该用CL指示次数。可改为:MOVCL,5SHLBX,CL(7)操作数300 255,已超出有效的中断类型码范围。(8)XCHG指令不允许立即数做它的操作数。可改为:MOVCX,0FFFHXCHGDX,CX(9)源、目的字长不一致(10)OFFSET只用于简单变量,应去掉(11)CS不能作为目的寄存器(12)段寄存器之间不能直接传送数据3已知(DS)=2000H,有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)
18、=30H,(23600H)=60H,(23601H)=30H,符号COUNT的偏移地址为1200H。执行下列指令后,寄存器AX、BX、SI的值分别是多少?MOVBX,OFFSET COUNTMOVSI,BXMOVAX,COUNTSIBX答:执行结果为(BX)=1200H,(SI)=1000H,(AX)=3040H。4设若内存单元DATA在数据段中偏移量为24C0H处,24C0H24C3H单元中依次存放着55H、66H、77H、88H。下列几条指令执行后,寄存器AX、BX、CL、SI的值分别是多少?MOV AX,DATALEA SI,DATAMOV CL,SI答:执行结果为(AX)=6655H,
19、(BX)=6655H,(CL)=55H,(SI)=24C0H。第4章 汇编语言程序设计一、填空题1段定义伪指令语句用 SEGMENT 语句表示开始,以 ENDS 语句表示结束。2ARRAY DW 10 DUP(5 DUP (4 DUP (20H,40H,60H)语句执行后共占 1200 字节存储单元。3汇编语句中,一个过程有NEAR和FAR两种属性。NEAR属性表示主程序和子程序 在同一个代码段中 ,FAR属性表示主程序和子程序不在同一个代码段中。4DOS系统功能号应放在 AH 寄存器中。5子程序又称 过程 ,它可以由 PROC 语句定义,由 ENDP 语句结束,属性可以是 NEAR 或 FA
20、R 。二、选择题1EXE文件产生在( D )之后。A. 汇编 B. 编辑 C. 用软件转换 D. 连接2变量定义的伪指令助记符有( ABCEF )。A. DB B. DW C. DD D. DF E. DQ F. DT3若主程序段中数据段名为DATA,对数据段的初始化操作应为(B)。A. MOV AX,DATA B. MOV AX,DATAMOV ES,AX MOV DS,AXC. PUSH DS D. MOV DS,DATA48086宏汇编源程序中,若BUFF是字变量名,则执行指令MOV BX,BUFF后,BX中的值为BUFF单元的( A )。A. 字数据值 B. 变量类型值 C. 段基址
21、D. 段内偏移量三、综合题1下列标号为什么是非法的?(1) GET.DATA(2) 1_NUM(3) TEST-DATA(4) RET (5) NEW ITEM答案: (1)因为.只允许是标号的第一个字符(2)第一个字符不能为数字 (3)不允许出现-(4)不能是保留字,如助记符 (5)不能有空格2下面两个数据段中偏移地址为10H和11H的两个存储单元中的数据一样吗?DTSEGSEGMENTORG10HDATA1DW7204HDTSEGENDSDTSEGSEGMENTORG10HDATA1DB72HDB04HDTSEGENDS为什么?答案:不一样。分别是72H, 04H和04H, 72H。存储字
22、时低8位存在低字节,高8位存在高字节。3请写出上述两条指令执行后,BX寄存器中的内容。DATASEGMENTTABLE_ADDRDW1234HDATAENDSMOVBX, TABLE_ADDRLEA BX, TABLE_ADDR答案: MOV BX,TABLE_ADDR ;执行后(BX)=1234H LEA BX,TABLE_ADDR ;执行后(BX)=OFFSET TABLE_ADDR4试编写一个汇编语言程序段,要求对键盘输入的小写字母用大写字母显示出来。答案: abc:movah, 1int21hcmpal,ajbstopcmpal,zjastopsubal,20hmovdl,almova
23、h,2int21hjmpabcstop: ret5编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示“MATCH”,若不同则显示“NO MATCH”。答案:datareasegmentstring1dbasfioastring2dbxcviyoafmess1dbMATCH,$mess2dbNO MATCH,$datarea endsprognamsegmentmain proc farassume cs:prognam,ds:datareastart: push dssub ax,axpush ax;返回DOSmov ax,datareamov ds,ax
24、mov es,ax;赋初值begin:mov cx, string2-string1 mov bx, mess1-string2 cmp bx,cx;比较两字符串的长度 jnz dispnoleadx,addr;若长度相同leasi,string1leadi,string2;地址指针赋初值repecmpsb;比较jnedispnomovah,9;相同,显示MATCHleadx,mess1int21hretdispno: mov ah, 9;不同,显示NO MATCHleadx, mess2int21hretmainendpprognamendsendstart6从内存单元BUF开始的缓冲区中有
25、7个8位无符号数,依次为13H、0D8H、92H、2AH、66H、0E0H、3FH。编程找出它们的中间值并放入RES单元,且将结果以“(RES) = ?”的格式显示在屏幕上。答:一种可能的程序如下实现:DATASEGMENTBUF DB13H,0D8H,92H,2AH,66H,0E0H,3FHRESDB?;中间数的存放单元STRDB (RES)=STR1DB?,?,$;结果字符串DATAENDSSSEGSEGMENT PARA STACKSSEGDB100 DUP(?)SSEGENDSCODESEGMENTASSUMECS:CODE,SS:SSEG,DS:DATA,ES:DATAMAINPRO
26、CFAR;主程序PUSHDSXOR AX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX;有STOS指令,需用ESMOVCX,6;外循环次数,比6次AGN:MOVSI,OFFSET BUFMOVDI,SIINC DI;SI、DI指向相邻2数MOVDX,6;内循环次数,比6次AGN1:MOVAL,SICMP AL,DI ;两个无符号数相比较JBUNCH;小于则转,不互换EXCH:XCHGAL, DI ;前1单元较大,则互换MOV SI ,AL;大数放在后面UNCH:INCSI;修改指针,指向下一个数INCDIDEC DXJNZAGN1;未处理完,继续内循环LOOPAGN;外
27、循环DONE:MOVAL,SI3;排序完成,取中间数MOVRES,ALAND AL,0F0H;分离高半字节MOVCL,4SHR AL,CLCALLBATR;调子程序,将AL值转换为ASCII码LEA DI,STR1;DI指向结果单元CLDSTOSB;存放转换结果MOVAL,RESAND AL,0FH;分离并转换低半字节CALLBATRSTOSBLEA DX,STR ;显示整个字符串MOVAH,09HINT21HRETMAINENDP;主程序MAIN结束;子程序BATR,实现16进制数到ASCII码的转换BATRPROCNEARCMP AL,10;入口参数为ALJBNUM;是数字,则转NUMAD
28、D AL,A100;字母NUM:ADD AL,0RETBATRENDP ;子程序结束CODEENDSENDMAIN简析:本例的基本思路是:先把7个无符号数按大小排序,排序完成之后取位于中间的一个数即为中间值。然后将该16进制数转换为两个对应的ASCII码,再与要求的格式字符一起输出送显即可。数据排序可以是从大到小、或从小到大排列,本参考程序完成从小到大排序,由一个双重循环结构实现。内循环完成一个数与其它数之间的一一比较,并使每次比较所得的小数置于低地址单元。外循环实现所有数之间的两两相较。共7个数据,故内、外循环中的比较次数均为6次。编程时需注意:无符号数比较大小应使用JA、JB、JAE、JB
29、E指令,本例完成从小到大的排列,故用JB控制转移到UNCH;若要从大到小排列,则用JA代替JB即可。第5章 存储器系统一、选择题1下列(B)不是半导体存储器芯片的性能指标。A. 存储容量 B. 存储结构 C. 集成度 D. 最大存储时间2高速缓存由(B)构成。A. SRAM B. DRAM C. EPROM D. 硬磁盘3由2K1bit的芯片组成容量为4K8bit的存储器需要(D)个存储芯片。A. 2 B. 8 C. 32 D. 164安排2764芯片内第一个单元的地址是1000H,则该芯片的最末单元的地址是(D)。A. 1FFFH B. 17FFH C. 27FFH D. 2FFFH5一片容
30、量为8KB的存储芯片,若用其组成1MB内存,需( C )片。A. 120 B. 124 C. 128 D. 1326外存储器包括 ( A B E F )。A. 软磁盘 B. 磁带 C. SRAM D. BIOS E. 硬磁盘 F. 光盘7在多级存储体系结构中,Cache-主存结构主要用于解决( D )的问题。A. 主存容量不足 B. 主存与辅存速度不匹配 C. 辅存与CPU速度不匹配 D. 主存与CPU速度不匹配8动态RAM的特点之一是( BD )。A. 能永久保存存入的信息 B. 需要刷新电路 C. 不需要刷新电路 D. 存取速度高于静态RAM二、填空题1.在分层次的存储系统中,存取速度最快
31、、靠CPU最近且打交道最多的是 Cache 存储器,它是由 DRAM 类型的芯片构成,而主存储器则是由 SRAM 类型的芯片构成。2将存储器与系统相连的译码片选方式有 线选法、部分地址译码法和 全地址译码 法。3若存储空间的首地址为1000H,存储容量为1K8、2K8、4K8H 的存储器所对应的末地址分别为 13FFH 、 17FFH 、 1FFFH 。4微机系统中存储器通常被视为 Cache 、 主存 、辅存 三级结构。三、综合题1某微机系统中内存的首地址为3000H,末地址为63FFH,求其内存容量。答:存储区总的单元数为:63FFH3000H13400H,故总容量13KB。 计算方法:若
32、直接用十六进制表示,则总容量(3*163+4*162)/1024; 若将地址表示成二进制,则总容量 213B212B210B;2下图为SRAM6116芯片与 8088系统总线的连接图。 2 (1)写出6116芯片的存储容量;3 (2)分析每片6116所占的内存地址范围。 答:(1)6116芯片的存储容量是2k*8bit (2)第一片6116的内存地址范围是F1000HF17FFH 第二片6116的内存地址范围是F1800HF1FFFH3利用6264芯片,在8088系统总线上实现20000H23FFFH的内存区域,试画出连接电路图。答: 4如图所示,IBMPC/XT计算机扩展槽上与存储器连接的总
33、线信号为20根地址线A19A0,8根数据线D7D0以与存储器读写信号和。使用这些信号扩展1片27256(32K8 EPROM)和1片62256(32K8 RAM)。要求EPROM的起始地址为C8000H,RAM紧随其后,使用74LS138(38译码器),采用全地址译码方式。(1)试在图中画出计算机的存储器连接图(门电路自选)。第四题图 (2)写出各片存储器的地址范围。答:地址范围27512:C8000CFFFFH, 62512:D0000HD7FFFH5设某系统中的数据总线宽度为8bit,地址总线宽度为16bit。若采用4K4的RAM芯片组成16KB的存储系统。问:(1)共需多少片4K4的RA
34、M芯片?这些芯片应分成多少组?每组多少片?答:共需8片RAM芯片,分成4组,每组2片。(2)该存储系统至少需要多少根地址总线?其中多少根低位地址线用于片内自选(译码)?答:至少需要14根地址总线,其中12根低位地址线用于片内自选。(3)设该存储系统从0000H开始占用一段连续地址空间,试给出每组芯片占用的地址范围。答:00000FFFH10001FFFH20002FFFH30003FFFH第10章 中断技术一、判断题1内部中断的优先权总是高于外部中断。()2两片8259A级连后可管理16级中断。()38259A所管理的中断源中,优先级低的中断源不可能中断优先级高的中断服务子程序。()4若825
35、9A的中断屏蔽字为00H,则8259A所管理的8级中断全被屏蔽。()5只要8259A所管理的中断源没有被屏蔽,则任何中断源的中断请求都能得到CPU的响应和服务。()6在8259A特殊完全嵌套方式中,同级的中断可实现嵌套。()二、单项选择题18086CPU工作在总线请求方式时,会让出( D )。A. 地址总线 B. 数据总线C. 地址和数据总线 D. 地址、数据和控制总线2CPU响应INTR引脚上来的中断请求的条件之一是( B )。A. IF =0 B. IF =1 C. TF =0 D. TF =13断点中断的中断类型码是 ( C )。A. 1 B. 2 C. 3 D. 44执行指令IRET后
36、弹出堆栈的寄存器先后顺序为( B )。A. CS、IP、Flags B. IP、CS、Flags C. Flags、CS、IP D. Flags、IP、CS5若8259A工作在优先级自动循环方式,则IRQ4的中断请求被响应并且服务完毕后,优先权最高的中断源是( B )。A. IRQ3 B. IRQ5 C. IRQ0 D. IRQ468086机中若对从片8259A写入的ICW2是70H,则该8259A芯片的IRQ6的中断类型码是( B )。A. 75H B. 76H C. 70H D. 1D8H7PC/XT机中若对从片8259A写入的ICW2是70H,则该8259A芯片的IRQ5的中断矢量存储的
37、地址是( D )。A. 75H B. 280H C. 300H D. 1D4H8当向8259A写入的操作命令字OCW2为时,将结束( E )的中断服务。A. IRQ0 B. IRQ1 C. IRQ2 D. IRQ3E. IRQ4 F. IRQ5 G. IRQ6 H. IRQ7三、多项选择题1在PC机工作过程中,8259A所管理的中断源优先级将发生变化的工作方式有( C D )。A. 全嵌套工作方式 B. 特殊全嵌套方式C. 优先级自动循环方式 D. 优先级特殊循环方式2写入8259A的ICW1为13H,则该8259A芯片的工作方式是( ADE )。A. 上升沿触发中断请求 B. 仅高电平请求中
38、断 C. 多片主从方式D. 单片方式 E. 初始化写入ICW4 F. 初始化不写入ICW43写入8259A的ICW4为09H,则该8259A芯片的工作方式是( ABD )。A. 全嵌套 B. 采用8086CPU C. 多片主从方式D. 缓冲方式 E. 自动结束中断 F. 优先级自动循环4写入PC/XT机8259A芯片的操作命令字OCW1是36H,则被屏蔽的中断源是( BCEF )。A. IR0 B. IR1 C. IR2 D. IR3E. IR4 F. IR5 G. IR6 H. IR758086CPU响应硬中断NMI和INTR时,相同的条件是( BD )。A. 允许中断 B.当前指令执行结束
39、 C. CPU工作在最大模式下 D. 不处于DMA操作期间四、填空题1中断矢量就是中断服务子程序的 入口地址 ,在内存中占有 4 个存储单元,其中低地址存储单元存放的是 IP内容,高地址存储单元存放的是 CS内容。2中断返回指令是 IRET ,该指令将堆栈中保存的断点弹出后依次装入 IP 寄存器和 CS 寄存器中,将堆栈中保存的标志装入 Flags 中。3CPU响应8259A中断,在引脚上输出 2 个负脉冲,在第 2 个负脉冲期间读入中断类型码。48086CPU共可管理 256 个中断,中断矢量表放在从 00000 H地址单元到 003FF H地址单元,总共有 1K 个字节。5CPU响应中断后
40、将 Flags 寄存器入栈保存,然后自动将 IF 标志和 TF 标志复位。若要实现中断嵌套,必须在中断服务子程序中执行一条 开中断 指令。五、综合题1试说明一般中断系统的组成和功能。答:处理器内部应有中断请求信号的检测电路,输出中断响应信号,保存断点的逻辑,转向中断处理程序的逻辑,中断返回逻辑。系统中要有一中断控制器,管理多个中断源,提供处理机所需的中断处理信息。系统中请求中断处理的I/O接口电路要有提供中断请求信号与接收中断响应信号的逻辑。2简述中断的响应过程。答:8086在中断响应时,自动将标志寄存器FR和断点(CS和IP)的值入栈保存,但不将别的其它寄存器的值入栈保存,故如果中断服务程序
41、中用到其它寄存器时,应单独使用指令将其它寄存器的值入栈保存,等中断返回前再将其恢复。这一步骤称为保护现场和恢复现场。保护现场和恢复现场应后进先出。8086只对可屏蔽中断的响应输出2个总线周期的INTA,并在第2个INTA期间到DB的低8位读入中断类型码,而对其它类型的中断,由于中断类型码是固定的,不用到DB读取,故没有2个INTA总线周期。中断响应与调子程序过程完全不同。3简述8086系统的中断分类与优先级。答:内部(除法除以0、单步、断点、溢出、指令中断)和外部(非屏蔽、可屏蔽)两大类。每个中断源有一个自已特定的类型码,8086靠类型码来识别不同中断源,转去执行不同中断服务程序。可以使标志寄
42、存器的IF位和TF位为0来关闭可屏蔽中断和单步中断,但除法除以0中断、溢出中断、断点中断、指令中断与非屏蔽中断是无法关闭的。可屏蔽中断有专用的指令STI(开可屏蔽中断)和CLI(关可屏蔽中断),但单步中断的开或关没有专用指令。 因8086的中断类型码为8位的,中断类型码的个数为0FFH,最多可有256个数,故8086的内部中断和外部中断加起来最多可有256个。除了可屏蔽中断的中断类型码是由8259A提供的外,其它每种中断的中断类型码都是固定的。8086各中断源的优先级从高到低依次是:除法除以0溢出中断、断点中断、指令中断非屏蔽中断可屏蔽中断单步中断注意,优先级的高低与中断类型码的大小没有关系。因INT N指令中断的优先级高于可屏蔽中断的优先级,故8086在执行指令中断期间不能响应可屏蔽中断的中断请求。4什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类