《微机原理与接口技术》中科大版部分习题解答.doc_第1页
《微机原理与接口技术》中科大版部分习题解答.doc_第2页
《微机原理与接口技术》中科大版部分习题解答.doc_第3页
《微机原理与接口技术》中科大版部分习题解答.doc_第4页
《微机原理与接口技术》中科大版部分习题解答.doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章习题及答案:P204、(画一个计算机系统的方框图),简述各部分的主要功能。计算机系统框图见课本P7图1.3,各部分功能如下:1)微处理器:从存储器中取指,进行算术逻辑运算,与存储或I/O传送数据,程序流向控制等。2)存储器:由RAM和ROM组成,用来存储程序和数据。3)I/O接口:用于连接CPU与外部设备,当它们之间进行数据交换时,使之在信息的格式、电平、速度方面匹配。4)总线:将CPU与存储器和I/O接口相连,是传送地址、数据和控制信息的通道。可分为地址总线,数据总线和控制总线。5)I/O设备:输入数据及程序,输出或显示运算和程序执行结果。6)软件系统:可分为系统软件、支撑软件和应用软件,使计算机能完成各种任务。9、将下列二进制数转换为十进制数。(1)1101.01B13.25(2)111001.0011B57.1875(3)101011.0101B43.3125(4)111.0001B7.062510、将下列十六进制数转换为十进制。(1)A3.3H163.1875(2)129.CH297.75(3)AC.DCH172.859375(4)FAB.3H4011.187511、将下列十进制数转换为二进制、八进制、十六进制。(1)2310111B27Q17H(2)1071101011B153Q6BH(3)1238100110101102326Q4D6H(4)921011100B134Q5CH12、将下列十进制数转换为8位有符号二进制数 (原码,可以是补码)(1)+32 00100000B(00100000B)(2)-1210001100B(11110100B)(3)+100 01100100B(01100100B)(4)-9211011100B(10100100B)13、将下列十进制数转换为压缩BCD码和非压缩BCD码。(1)1020001000000100000 0001 0000 0000 0000 0010(2)44010001000000 0100 0000 0100(3)301001100000001 0000 0011 0000 0000 0000 0001(4)100000010000000000000000 0001 0000 0000 0000 0000 0000 000014、将下列二进制数转换为有符号的十进制数。(原码,可以是补码)(1)10000000B0 (补码:-128)(2)00110011B+51 (+51)(3)10010010B-18(-110)(4)10001001B-9(-119)15、将下列十进制数转换为单精度浮点数。(1)+1.5 0 01111111 10000000000000000000000(2)-10.6251 10000010 0101010000000000000000(3)+100.250 10000101 1001000100000000000000(4)-1200 1 10001001 0010110000000000000000016、将下列单精度浮点数转换为十进制数。(1)0 10000000 11000000000000000000000 3.5(2)1 01111111 00000000000000000000000 -1(3)0 10000000 10010000000000000000000 3.125第二章习题及答案:必做习题:1,5,9,11,12,14,16,18,201 答:CPU内部由执行单元EU和总线接口单元BIU组成。主要功能为:执行单元EU负责执行指令。它由算术逻辑单元(ALU)、通用寄存器组、16位标志寄存器(FLAGS)、EU控制电路等组成。EU在工作时直接从指令流队列中取指令代码,对其译码后产生完成指令所需要的控制信息。数据在ALU中进行运算,运算结果的特征保留在标志寄存器FLAGS中。总线接口单元BIU负责CPU与存储器和IO接口之间的信息传送。它由段寄存器、指令指针寄存器、指令流队列、地址加法器以及总线控制逻辑组成。8086的指令队列长度为6B。5 答:(1)ZF,两数相减如ZF=1,则相等(2)SF,SF=1为负(3)对有符号数:OF,OF=1为溢出;对无符号数:CF,CF=1为溢出(4)PF,PF=1,不补1(5)对有符号数:无溢出时(OF=0),如ZF=1,则两数相等;如ZF=0且SF=0,则被减数大;如ZF=0且SF=1,则减数大;有溢出时(OF=1),如SF=1,则被减数大;如SF=0,则减数大;对无符号数:如ZF=1,则两数相等;如CF=0,则被减数大;如CF=1,则减数大(6)IF,IF=1,允许中断 9答:(1)10000H1FFFFH(2)12340H2233FH(3)23000H32FFFH(4)E0000HEFFFFH(5)AB000HBAFFFH10 答:(1)12000H(2)21000H(3)25000H(4)3F069H11答:(1)12000H(2)26200H(3)A1000H(4)2CA00H12 答:物理地址:35000H35800H。入栈10个字节后SP为7F6H。再出栈6个字节后SP为7FCH。14 答:代码段首地址:31FF0H;当前指令地址:320F0H数据段首地址:10E40H堆栈段栈底地址:21F00H;堆栈段栈顶地址:31EEEH附加段首地址:10F40H状态标志均为0。15 8086的最小工作模式和最大工作模式有什么区别?答:最小模式又称为单微处理器模式,在这种模式下,CPU仅支持由少量设备组成的单微处理器系统而不支持多处理器结构,小系统所需要的全部控制信号都由CPU直接提供。对应地,最大模式又称为多微处理机模式。在最大模式下,系统中除了有8086 CPU之外,还可以接另外的处理器(如8087数学协处理器),构成多微处理器系统。此时CPU不直接提供读写命令等控制信号,而是将当前要执行的传送操作类型编码成3个状态位输出,由总线控制器对状态信号进行译码后产生相应控制信号。其他的控制引脚则直接提供最大模式系统所需要的控制信号。16 答:因为8086的地址和数据引脚分时复用,要保证稳定输出地址信号,必须使用地址锁存器。使用三片8282,其中 接地,STB与CPU的ALE相连;前2片8282的DI0DI7分别与CPU的AD0AD15相连,第三片8282的DI0DI3分别与CPU的AD16AD19相连,DI4与CPU的 相连。18 答:CPU完成一次存储器访问或I/O端口操作所需要的时间称为一个总线周期。在 T2T4 时钟周期内数据出现在总线上。 20 答:FFFF0H第三章2,3,6,10,11,12,13,15,17,182. DS=1000H,BX=0200H,SI=2,内存10200H-10205H单元的内容分别是 10H, 2AH, 3CH, 46H, 59H, 6BH 下列指令执行后,AX=? (1)MOV AX,0200H (2) MOV AX,200H (3)MOV AX,BX (4) MOV AX,3BX (5)MOV AX,BX+SI (6) MOV AX,2BX+SI 答:(1)0200H (2)2A10H (3)0200H (4)5946H (5)463CH (6)6B59H 3.DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,数据段中变量名为 VAL 的偏移地址值为 0030H,说明下列源操作数的寻址方式和物理地址? (1)MOV AX,100H (2) MOV AX,VAL (3)MOV AX,BX (4) MOV AX,ES:BX (5)MOV AX,SI (6) MOV AX,BX+10H (7)MOV AX,BP (8) MOV AX,VALBPSI (9)MOV AX,VALBXDI (10) MOV AX,BPDI 答:(1)直接,10100H (2)直接,10030H (3)寄存器间接,10100H (4)寄存器间接,20100H (5)寄存器间接,100A0H (6)寄存器相对,10110H (7)寄存器间接,35200H (8)相对基址变址,352D0H (9)相对基址变址,10154H (10)基址变址,35224H 6.指出下列指令哪些是错误的,错在哪里 (1) MOV DL,AX (2) MOV 8650H,AX (3) MOV DS,0200H (4) MOV BX,1200H (5) MOV IP,0FFH (6) MOV BX+SI+3,IP (7) MOV AX,BXBP (8) MOV AL,ES:BP (9) MOV DL,SIDI (10) MOV AX,OFFSET 0A20H (11) MOV AL,OFFSET TABLE (12)XCHG AL,50H (13) IN BL,05H (14) OUT AL,0FFEH 答:(1)长度不匹配 (2)立即数不能做目的操作数 (3)段寄存器不能用立即数赋值 (4)不能两个内存 (5)IP不能用指令直接修改 (6)指令中不能出现 IP (7)BX/BP应与 SI/DI 搭配 (8)对 (9)SI/DI 应与 BX/BP 搭配 (10)OFFSET 后应该内存 (11)应用 AX (12)不能立即数 (13)IN必须用 AL/AX (14)操作数反;地址应为 8 位 10. 某班有7个同学英语成绩低于 80分, 分数存在字节类型 ARRAY数组中, 编程完成: (1)给每人加 5分,结果存到 NEW 数组中 (2)把加分后的总分存到字类型 SUM 单元中 (3)把加分后的平均分存到字节类型 AVERAGE 单元中 答: ARRAY DB 79,78,77,76,77,78,79 NEW DB 7 DUP(?) SUM DW 1 DUP(?) AVERAGE DB 1 DUP(?) MOV DS, AX MOV ES, AX LEA SI,ARRAY LEA DI,NEW MOV CX,7 CLD REP MOVSB MOV CX,7 MOV AX,0 LEA SI,NEW ADD5: ADD BYTE PTRSI,5 ADD AL,SI ADC AH,0 INC SI LOOP ADD5 MOV SUM,AX MOV BL,7 DIV BL MOV AVERAGE,AL 11.AX=2508H,BX=0F36H,CX=0004H,DX=1864H,下列指令执行后结果是多少,标志位 CF=? (1) AND AH,CL (2) OR BL,30H (3) NOT AX (4) XOR CX,0FFF0H (5) TEST DH,0FH (6) CMP CX,00H (7) SHR DX,CL (8) SAR AL,1 (9) SHL BH,CL (10) SAL AX,1 (11) RCL BX,1 (12) ROR DX,CL 答: (1)AX=0408H,CF=0 (2)BX=0F36H,CF=0 (3)AX=0DAF7H,CF 不变 (4)CX=0FFF4H,CF=0 (5) DX=01864H,CF=0 (6)CX=0004H,CF=0 (7)DX=0186H,CF=0 (8)AX=2504H,CF=0 (9)BX=0F036H,CF=0 (10)AX=4A10H,CF=0 (11)BX=1E6C/1E6DH,CF=0 (12)DX=4186H,CF=0 12.数据段定义如下: DATA SEGMENT STRING DB The Personal Computer& TV DATA ENDS 用字符串操作等指令完成以下功能: (1)把该字符串传送到附加段中偏移量为 GET_CHAR 开始的内存单元中 (2)比较该字符串是否与The computer相同,若相同则将 AL 寄存器的内容置 1,否则置 0,并将比较次数送到 BL 寄存器 (3)检查该字符串是否有&符,若有则用空格符替换 (4)把大写字母传送到附加段中以 CAPS 开始的单元中,其余字符传送到以 CHART开始的单元,然后将数据段中存储上述字符串的单元清零。 答:(1)CLD LEA SI,STRING LEA DI,GET_CHAR MOV CX,26 REP MOVSB (2)补充在附加数据段定义 STRING1 DB The computer MOV AL,1 CLD LEA SI,STRING LEA DI,STRING1 MOV CX,12 REPZ CMPSB JCXZ SKIP MOV AL,0 SKIP: MOV BX,12 SUB BX,CX (3) CLD MOV AL,& LEA DI,STRING MOV CX,26 NEXT: REPNE SCASB JCXZ SKIP MOV BYTE PTR DI-1, LOOP NEXT SKIP: (4) LEA SI,STRING LEA DI,CAPS LEA BX,CHART MOV CX,26 NEXT: MOV AL, SI CMP AL,A JB OTHER CMP AL,Z JA OTHER MOV ES:DI,AL INC DI JMP SKIP OTHER: MOV ES:BX,AL INC BX SKIP: MOV BYTE PTRSI,0 INC SI LOOP NEXT 13. 编程将 AX寄存器的内容以相反的次序传送到 DX寄存器中,并要求 AX中的内容不被破坏,然后统计 DX寄存器中1的个数 答: MOV BL,0 PUSH AX MOV DX,0 MOV CX,16 NEXT: SHL AX,1 JNC SKIP INC BL SKIP:RCR DX,1 LOOP NEXT STOP:POP AX 15在下列程序段中分别填入以下指令 (1)LOOP NEXT (2) LOOPE NEXT (3) LOOPNE NEXT 程序执行完后,AX,BX,CX,DX 的内容分别是多少? START: MOV AX,01H MOV BX,02H MOV CX,04H MOV DX,03H NEXT: INC AX ADD BX,AX SHR DX,1 ( ) 答:(1) AX=5 BX=16 CX=0 DX=0 (2) AX=2 BX=4 CX=3 DX=1 (3) AX=3 BX=7 CX=2 DX=0 16中断向量表的作用:存储中断服务程序的入口地址(中断向量)。中断向量位于内存:00000H03FFH,共1024字节中断类型3的中断向量存放于0000CH0000FH。17.类型 2 的中断服务程序的起始地址为 0485:0016H,它在中断向量表中如何存放? 答: 物理地址 内容 00008H 16H 00009H 00H 0000AH 85H 0000BH 04H 18. 中断向量表中地址为 0040H中存放 240BH,0042H单元存放 D169H,问: (1) 这些单元对应的中断类型是什么? (2) 该中断服务程序的起始地址是什么? 答: (1)10H (2)D169H:240BH 第四章习题参考答案 p2051 解:A1 - 4 字节,A2 - 6 字节,A3 - 40 字节,A4 - 60 字节 2、下列指令完成什么功能?(1)MOVAX,00FFH AND 1122H + 3344H 解: 00FFH AND 1122H + 3344H = 00FFH AND 4466H = 0066H,指令将立即数0066H送AX寄存器。(2)MOVAL,15 GE 1111B 解:关系为真,表达式为0FFH,指令将立即数0FFH送AL寄存器,执行指令后AX = 00FFH(3)MOVAX,00FFH LE 255 + 6/5 解:( 00FFH LE ( 255 + 6/5)= 00FFH LE 256 ,(6/5=1),关系为真,表达式为0FFFFH,指令将立即数0FFFFH送寄存器AX。指令执行后AX = 0FFFFH(4)ANDAL,50 MOD 4 解: 50 MOD 4 = 2,指令将立即数02H与AL内容相与,执行指令后 AX= 0FF02H(5)OR AX,0F00FH AND 1234H OR 00FFH 解: 0F00FH AND 1234H OR 00FFH = 1004H OR 00FFH = 10FFH,指令将AX的内容( 0FF02H )与立即数10FFH相或,执行指令后 AX= 0FFFFH3、有符号定义语句如下:BUFDB3,4,5,123ABUFDB0LEQUABUF BUF求L的值为多少?解:L值的内容为6。4 解:PAR 偏移地址为 0, PLENTH 当前偏移地址$=2+16+4=22, $-PAR=22,故PLENTH 的值为 22 5 解:AX=1,BX=20,CX=1 6 解: 应讨论最高位为1 和0 的情况。如输入最高位为 1,AH=0;输入最高位为0,AH=0FFH。 IN AL,5FH ;假如输入后AL=45H TEST AL,80H ;执行01000101 AND 10000000 后ZF=1,AL=00H JZ L1 ;ZF=1,转到 L1 MOV AH,0 JMP STOP L1: MOV AH,0FFH ;结果AH=0FFH STOP: HALT 补充题 阅读程序并完成填空 (1) ADDR1 开始的单元中连续存放两个双字数据,求其和,并将和存放在 ADDR2 开始的单元(假定和不超过双字) MOV CX,2 XOR BX,BX CLC NEXT: MOV AX,ADDR1+BX ADC AX, MOV ADDR2+BX,AX INC BX NEXT 解: ADDR1+BX+4 INC BX LOOP (2) 在数据段 ADDR1 地址处有 200 个字节数据,要传送到数据段地址 ADDR2 处。 MOV AX, SEG ADDR1 MOV DS, AX MOV ES, MOV SI, MOV DI, OFFSET ADDR2 MOV ,200 CLD REP 解: AX OFFSET ADDR1 CX MOVSB (3)已知有某字串 BUF1 的首地址为 2000H, 数据段与附加段重合。欲从 BUF1 处开始将20 个字数据顺序传送至 BUF2 处。 (假设 BUF1和 BUF2 有地址重叠) LEA SI, BUF1 ADD SI, LEA DI, BUF2 STDMOV CX, REP MOVSW 解: 38 ADD DI, 38 20 (4)设有一个首地址为 ARRAY,有 N 个字数据的数组,要求求出该数组之和,并把结果存入 TOTAL 地址中。(假设和不超过两个字节) MOV CX, MOV AX,0 MOV SI,0 START: ADD AX, ADD SI, 2 DEC CX JNZ START MOV ,AX 解: N ARRAYSI TOTAL(5)将段地址为 1000H、偏移地址为 STR 的5个字节的内容逐一装入累加器中,加 1 后,再送入 STR为首地址的存储单元。 MOV AX, 1000H MOV ES, AX MOV DS, AX MOV DI, SI MOV CX,5 CLD NEXT: LODSB ADD AL, 1 LOOP NEXT 解: LEA SI, STR STOSB(6)下列子程序统计字符串的长度,入口参数 DI 为字符串首地址,字符串以 0DH 结束;返回参数 CX中为统计得到的字符串长度。STRLEN PROC PUSH AX PUSH DI MOV CX,0 REPEAT: MOV AL,DI JE EXIT INC DI EXIT: POP DI RET STRLEN ENDP 解: CMP AL, 0DH INC CX JMP REPEAT POP AX 第五章必做:1、2、3、5、9、121静态 RAM 内存储的信息只要电源存在就能一直保持,而动态 RAM 的信息需要定时刷新才能保持;同时静态 RAM 的集成度比较低,运行速度快,而动态 RAM 的集成度高,运行相对较慢。 2.ROM 是只读存储器,根据写入方式的不同可以分为四类:掩膜型 ROM、 PROM、 EPROM和 EEPROM。 PROM 是可编程只读存储器,只允许编程一次,价格与生产批量无关,造价比较高; EPROM 为可擦除可编程 ROM,能够通过特殊方式对它进行编程; EEPROM 为电可擦除可编程 ROM,能够通过一定的通电方式对内容进行擦除并写入新的信息。 3.CAS#为列地址选通信号,用于指示地址总线上的有效数据为列地址; RAS#为行地址选通信号,用于指示地址总线上的有效数据为列地址。 5.直接映象 Cache 是将主存储器中每一页大小分成和 Cache 存储器大小一致, Cache中每一块分配一个索引字段以确定字段,这样可以通过一次地址比较即可确定是否命中,但如果频繁访问不同页号主存储器时需要做频繁的转换,降低系统性能;成组相联Cache 内部有多组直接映象的 Cache,组间采用全关联结构,并行地起着高速缓存的作用。访问时需要进行两次比较才能确定是否命中。 7用10241位的RAM芯片组成16K8位的存储器,需要多少芯片?在地址线中有多少位参与片内寻址?多少位组合成片选信号?(设地址总线16位)(1)存储器总容量 = 16K8bits128kbits;每片存储芯片容量为:1kbits需要128/1 =128个存储芯片(2)210 = 1024,每个存储芯片需要10位地址线参与片内寻址(3)由于每8个存储芯片生成一个字节宽度存储器,共用一个片选信号,需要片选信号数为 128/8 = 16由于 24 = 16,所以至少需要4位地址线生成片选信号8现有一存储体芯片容量5124位,若要用组成4KB的存储器,需要多少这样的芯片?每块芯片需要多少寻址线?整个存储系统最少需要多少寻址线?解:(1)总存储容量为:4KB = 32Kbits, 每片存储芯片的容量为:5124 = 2Kbits 所以需要32/2 = 16片存储芯片。(2)512 = 29,所以每片芯片需要9根寻址线(3)由于2片4位芯片构成一个字节存储体,共用1个片选信号,因此需要16/2 = 8条片选信号。由于23 = 8,需要3根地址线生成片选信号。所以整个存储系统至少需要12根地址线。9.组成 4K8 的存储器,那么需要 4片这样的芯片:将 A15 取反后分配芯片 1 的 CS;将 A14 取反后分配给芯片 2 的 CS;将 A13 取反后分配芯片 3 的 CS;将 A12 取反后分配给芯片 4 的 CS。那么芯片 1 的地址范围可以是(0x80000x83FF)、(0x84000x87FF)、(0x88000x8BFF)、(0x8C000x8FFF)、(0xF4000xF7FF)、(0xF8000xFBFF)、(0xFC000xFFFF) ,芯片 2 的地址范围可以是(0x40000x43FF)、(0x44000x47FF)、(0x48000x4BFF)、(0x4C000x4FFF)、 (0xF4000xF7FF)、(0xF8000xFBFF)、(0xFC000xFFFF) ,这样会造成地址的重复。11当要将一个字写入到存储器奇地址开始的单元中去,列出存储器的控制信号和它们的有效逻辑电平信号(8086工作在最小模式)解:(参见课本P230页,图5.22)存储器写操作由两个总线周期组成,使用的控制信号为:/WE 存储器信号,低电平有效 /CE1 存储器片选信号,低电平有效。(由高位地址线和M/IO信号经译码生成 )CE2 存储器片选信号,高电平有效 奇存储体的CE2信号由/BHE反向后生成 偶存储体的CE2信号由A0反向后生成12设计一个64K8存储器系统,采用74LS138和EPROM2764器件,使其寻址范围为40000H4FFFFH解:EPROM2764容量为8K8 = 64kbits,存储系统容量为64K8 = 512Kbits,故需要512 / 64 = 8片2764 ;8192 = 213 ,每片2764需要13根地址线。分两种情况分析:(1)采用8088微处理器的计算机系统:由于采用8位数据总线,A12 A0用于芯片内部存储字节寻址线。地址范围为:40000H4FFFFH,A19A16=0100,A15A13作为74LS138译码输入产生片选信号。参考电路图如下:(2)采用8088微处理器的计算机系统:由于采用16位数据总线,A13 A1用于芯片内部存储字节寻址线。地址范围为:40000H4FFFFH,A19A17=0100,A16A14作为74LS138译码输入产生片选信号Y3Y0 。参考电路图如下:13.用8K8位的EPROM2764、 8K8位的6264和译码器74LS138构成一个16K字ROM、16K字RAM的存储器子系统。8086工作在最小模式,系统带有地址锁存器8282,数据收发器8286。画出存储器系统与CPU的连线图,写出各芯片的地址分配。 解:(1) 16K字ROM需要4片2764(8K8) 16K字RAM需要4片6264 (8K8)(2) 对于8086系统存储子系统至少要包括的存储空间ROM:FFFF0HFFFFFH(8086复位后,CS=0FFFFH,IP = 0000H,因此微处理器每次上电都从地址0FFFF0H执行第一条指令),若各ROM地址连续分布,4片ROM实现的地址空间为:0F8000H0FFFFFH(32KB)RAM: 00000H003FFH空间为存储中断向量表,要使微机系统能正常工作(处理各种中断),存储器子系统包括这段空间。 4片RAM实现的地址空间为:00000H07FFFH (32KB)系统连线分别参考课本P43图2.15和课本P230页图5.22。第六章3、什么叫I/O端口?一般的接口电路中可以设置哪些端口?计算机对I/O端口编址时采用哪两种方法?在8086/8088CPU中一般采用哪种编址方法?答: 在CPU与外设通信时,传送的信息主要包括数据信息、状态信息和控制信息。在接口电路中,这些信息分别进入不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为I/O端口。 一般的接口电路中可以设置数据端口、状态端口和命令端口。计算机对I/O端口编址时采用两种方法:存储器映像寻址方式、I/O单独编址方式。在8086/8088CPU中一般采用I/O单独编址方式。4、CPU与外设间传送数据主要有哪几种方式?答:CPU与外设间的数据传送方式主要有:程序控制方式、中断方式、DMA方式。7、某一个微机系统中,有8块I/O接口芯片,每个芯片占有8个端口地址,若起始地址为300H,8块芯片的地址连续分布,用74LS138作译码器,试画出端口译码电路,并说明每个芯片的端口地址范围。8、什么叫总线?总线分哪几类?在微型计算机中采用总线结构有什么好处?答:在微型计算机系统中,将用于各部件之间传送信息的公共通路称为总线(BUS)。总线分三类:片级总线、系统总线、外部总线。 在微型计算机中采用总线的好处有:u 总线具有通用性,只要按统一的总线标准进行设计或连接,不同厂家生产的插件板可以互换,不同系统之间可以互连和通信,很适合于大批量生产、组装和调试,也便于更新和扩充系统。对于用户来说,可以根据自身需要,灵活地选购接口板和存储器插件,还可以根据总线标准的要求,自行设计接口电路板,来组装成适合自己的应用需要的系统或更新原有系统。第七章习题及答案:P302 习题 4、8、10、14、154CPU响应中断的条件是什么,简述中断处理过程。答:CPU响应外部中断的条件:(1)接收到外设提出的有效中断请求信号;(2)CPU开放中断,即中断标志IF是“1”;(3)CPU执行完当前指令。中断处理过程包含五个步骤:中断请求、中断判优、中断响应、中断处理和中断返回。(1)中断请求:中断源发出中断请求信号,送到CPU的INTR或NMI引脚;(2)中断判优:根据中断优先权,找出中断请求中级别最高的中断源,允许中断嵌套;(3)中断响应:在每条指令的最后一个时钟周期,CPU检测INTR或NMI信号,在满足一定条件下,CPU进入中断响应周期,自动完成:向中断源发出INTA中断响应信号、关中断(清IF)、断点保护(CS、IP及PSW自动压栈)、形成并转向中断入口地址;(4)中断处理:由中断服务程序完成,包括保护现场;开放中断;中断服务程序;关中断;恢复现场;开放中断;中断返回IRET等;(5)中断返回:执行中断返回指令IRET,CPU自动返回到断点地址(弹出堆栈内保存的断点信息到IP、CS和FLAG中),继续执行被中断的程序。8假定中断类型号15的中断处理程序的首地址为ROUT15,编写主程序为其建立一个中断向量。答1:PUSHESMOVAX,0MOVES,AXMOVDI,54H;15H*4MOVAX,OFFSET OUT15;中断处理程序的偏移AXCLDSTOSWMOVAX,SEG OUT15;中断处理程序的段地址AXSTOSWPOPES答2:PUSHDSMOVAX,SEG OUT15;中断处理程序的段地址AXMOVDS,AXMOVAX,OFFSET OUT15;中断处理程序的偏移AXMOVAL,15H;中断类型号MOVAH,25H;设中断向量INT21HPOPDS10给定SP=0100H,SS=0500H,PSW=0240H,在存储单元中已有内容为(00024H)=0060H,(00026H)=1000H,在段地址为0800H及偏移地址为00A0H的单元中有一条中断指令INT 9,试问执行INT 9指令后,SP、SS、IP、PSW的内容是什么?栈顶的三个字是什么?答:执行INT 9指令,标志寄存器PSW、下一条指令的段地址CS和指令指针IP的值分别入栈,PSW中的中断允许标志IF和单步标志TF清0,中断向量表的中断入口地址送CS和IP,转入中断服务子程序。所以此时SP0FAH,SS0500H,CS1000H,IP0060H,PSW0040H。栈顶的三个字是:(0500H:0FAH)00A2H、(0500H:0FCH)0800H、(0500H:0FEH)0240H14系统中有3个中断源,从8259A的IR0、IR2、IR4端引入中断,以边沿触发,中断类型号分别为50H、52H、54H,中断入口地址分别为5020H、6100H、3250H,段地址为1000H。使用完全嵌套方式,普通EOI结束,试编写初始化程序,使CPU能正确响应任何一级中断;并编写一段中断服务子程序,保证中断嵌套的实现和正确返回。答:;初始化程序;设置中断向量表MOVAX, 1000H ;段地址MOVDS, AXMOVDX, 5020H ;偏移地址MOVAL, 50H;中断类型号MOVAH, 25HINT21H;写50H的中断入口地址MOVDX, 6100H ;偏移地址MOVAL, 52H;中断类型号INT21H;写52H的中断入口地址MOVDX, 3250H ;偏移地址MOVAL, 54H;中断类型号INT21H;写54H的中断入口地址;8259A初始化命令字MOVAL, 13H;定义ICW1,单片,边沿触发OUT20H, ALMOVAL, 50H ;定义ICW2,中断号50H57HOUT21H, ALMOVAL, 01H ;定义ICW4,完全嵌套, 非缓冲, 普通EOIOUT21H, ALMOVAL, 0E6H ;定义OCW1,屏蔽IR1,3,5,6,7OUT21H, AL;中断服务子程序PUSHDS;保护现场PUSHAXPUSHCXPUSHDXSTI;开中断,允许中断嵌套;执行中断处理程序CLI;关中断EOI;中断结束命令POPDX;恢复现场POPCXPOPAXPOPDSIRET;中断返回15如外设A1、A2、A3、A4、A5按完全嵌套优先级排列规则,外设A1的优先级最高,A5最低。若中断请求的次序如下所示,试给出各外设的中断处理程序的次序。(假设所有的中断处理程序开始后就有STI指令)(1)外设A3和A4同时发出中断请求;(2)在外设A3的中断处理中,外设A1发出中断请求;(3)在外设A1的中断处理未完成前,发出EOI结束命令,外设A5发出中断请求答:外设的中断处理程序的次序为:A3A1A3A4A5第八章习题及答案:3答:8253的初始化步骤:1)写入控制字 2)写入计数初值4 解:(1)通道0工作于方式3,计数器初始值为2M/1.5k=1333.33,取1333(2)通道1工作于方式2,用通道0得输出端连接CLK1,计数器初始值为1.5k/300=5(3)通道2工作于方式3,用通道0得输出端连接CLK2,其计数脉冲接1.5k方波,计数器初始值为1.5k(2/50)=60初始化程序:;初始化通道0MOV DX, 306HMOV AL, 00111111B ;方式3,BCD码计数,先写低字节,后写高字节OUT DX, ALMOV DX, 300H ;写低字节MOV AL, 33HOUT DX,ALMOV AL, 13HOUT DX,AL;初始化通道1MOV DX, 306HMOV AL, 01010101B ;方式2,BCD码计数,只写低字节OUT DX, ALMOV DX, 302HMOV AL, 5OUT DX,AL;初始化通道2MOV DX, 306HMOV AL, 10010111B ;方式3,BCD码计数,只写低字节OUT DX, ALMOV DX, 304HMOV AL, 60HOUT DX,AL5 解:8253的最高工作频率为2MHz,根据要求进行8分频。(1)通道0工作于方式3,计数器初始值为625k/18.2=34341,十六进制为8625H(2)通道1工作于方式2,计数器初始值为1.2515=18.75,取19(3)通道2工作于方式3,计数器初始值为1.25M/2000=625;初始化通道0MOV AL, 00111110B ;方式3,二进制码计数,先写低字节,后写高字节OUT 43H, ALMOV AX, 8625H ;写低字节OUT 40H,ALOUT 40H,AH;初始化通道1MOV AL, 01010101B ;方式2,BCD码计数,只写低字节OUT 43H, ALMOV AL, 19HOUT 41H,AL;初始化通道2MOV AL, 10110111B ;方式3,BCD码计数,先写低字节,后写高字节OUT 43H, ALMOV AL, 25HOUT 42H,ALMOV AL, 6HOUT 42H,AL第九章5 解:初始化程序为MOV AL, 10001010BOUT 86H, AL7 解:A口工作在方式0输入,B口工作在方式1输出,C口的作用为:PC0:中断请求信号INTRB,输出,高电平有效;PC1:输入缓冲器满信号IBFB,输出,高电平有效;PC2:选通信号STBB,输入,低电平有效;C口的其它位根据控制字可设置为输入或输出位。控制字为:100110BA口工作在方式1输入,B口工作在方式0输出,C口的作用为:PC3:中断请求信号INTRA,输出,高电平有效;PC6:外设应答信号ACKA,输入,低电平有效;PC7:输出缓冲器满信号OBFA,输出,低电平有效;C口的其它位根据控制字可设置为输入或输出位。控制字为:101100B8 解:A口工作在方式2,B口工作在方式1输入,C口的作用为:PC0:中断请求信号INTRB,输出,高电平有效;PC1:输入缓冲器满信号IBFB,输出,高电平有效;PC2:选通信号STBB,输入,低电平有效;PC3:中断请求信号INTRA,输出,高电平有效;PC4:选通信号STBA,输入,低电平有效;PC5:输入缓冲器满信号IBFA,输出,高电平有效;PC6:外设应答

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论