李伯成《微型计算机原理及应用》课后习题答案.doc

上传人:最*** 文档编号:1727561 上传时间:2019-11-04 格式:DOC 页数:30 大小:582.50KB
返回 下载 相关 举报
李伯成《微型计算机原理及应用》课后习题答案.doc_第1页
第1页 / 共30页
李伯成《微型计算机原理及应用》课后习题答案.doc_第2页
第2页 / 共30页
李伯成《微型计算机原理及应用》课后习题答案.doc_第3页
第3页 / 共30页
点击查看更多>>
资源描述
李伯成微机原理习题 第一章本章作业参考书目: 薛钧义主编 微型计算机原理与应用Intel 80X86系列 机械工业出版社 2002年2月第一版 陆一倩 编 微型计算机原理及其应用(十六位微型机)哈尔滨工业大学出版社 1994年8月第四版 王永山等 编 微型计算机原理与应用 西安电子科技大学出版社 2000年9月1.1将下列二进制数转换成十进制数:X=10010110B=1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21=128D+0D+0D+16D+0D+0D+4D+2D=150DX=101101100B=1*28+0*27+1*26+1*25+0*24+1*23+1*22+ 0*21+0*20=256D+0D+64D+32D+0D+16D+4D+0D=364DX=1101101B=1*26+1*25+0*24+1*23+1*22+0*21 +1*20=64D+32D+0D+8D+4D+0D+1D=109D1.2 将下列二进制小数转换成十进制数:(1) X=0.00111B= 0*2-1+0*2-2+1*2-3+1*2-4+1*2-5= 0D+0D+0.125D+0.0625D+0.03125D=0.21875D(2) X=0.11011B= 1*2-1+1*2-2+0*2-3+1*2-4+1*2-5= 0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D(3) X=0.101101B= 1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6= 0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D1.3将下列十进制整数转换成二进制数:(1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B1.4 将下列十进制小数转换成二进制数: (1) X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B1.5 将下列十进制数转换成二进制数 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B1.6 将下列二进制数转换成十进制数 (1) X=1001101.1011B =77.6875D (2) X=111010.00101B= 58.15625D 1.7 将下列二进制数转换成八进制数 (1) X=101011101B=101011101B=535Q (2) X=1101111010010B=1101111010010B=15722Q (3) X=110B=6Q1.8 将下列八进制数转换成二进制数: (1) X=760Q=111110000B (2) X=32415Q=11010100001101B1.9 将下列二进制数转换成十六进制数:X=101 0101 1110 1101B= 5 5 E D HX= 11001101011001B= 11 0011 0101 1001B= 3 3 5 9HX= 1000110001B= 10 0011 0001 B= 2 3 1 H1.10 将下列十六进制数转换成二进制数:X= ABCH= 1010 1011 1100 BX=3A6F.FFH = 0011 1010 0110 1111.1111 1111BX= F1C3.4B =1111 0001 1100 0011 . 0100 1011B1.11 将下列二进制数转换成BCD码:(1) X= 1011011.101B= 1011011.101B= 91.625d=1001 0001.0110BCD (2) X=1010110.001B= 1010110.001 =126.1 BCD 1.12 将下列十进制数转换成BCD码: (1) X=1024D=0001 0000 0010 0100 BCD (2) X=632 = 0110 0011 0010 BCD (3) X= 103 = 0001 0000 0011 BCD1.13 写出下列字符的ASCI I码: A 41H 65D 0100 0001B 9 39H 47D * 2AH 42D = 3DH 45D ! 21H 33D1.14 若加上偶校验码,下列字符的ASCII码是什么? 字符 原码 加上偶校验码之后 B 42H, 0100 0010B 42H,0100 0010B 4 34H, 0011 0100B B4H,1011 0100B 7 37H, 0011 0111B B7H,1011 0111B = 3DH,0011 1101B BDH,1011 1101B ! 21H,0010 0001B 21H,0010 0001B ? 3FH 0011 1111B 3FH,0011 1111B1.15 加上奇校验,上面的结果如何?字符 原码 加上奇校验码之后B 42H, 0100 0010B C2H,1100 0010B 4 34H, 0011 0100B 34H,0011 0100B 7 37H, 0011 0111B 37H,0011 0111B = 3DH,0011 1101B 3DH,0011 1101B ! 21H,0010 0001B A1H,1010 0001B ? 3FH 0011 1111B BFH,1011 1111B1.16 计算下式: (1)B/2+ABH-11011001B*0.0101BCD=(42H/2+ABH-D9H)*0.21 BCD = = F3H*0.21 BCD =(-DH) *0.21 BCD= -2.73D (2) 3CH (84D)/(16Q)+8/8D= 60D-84D/14D+(56/8)=60D-13D=47D1.17 对下列十进制数,用八位二进制数写出其原码、反码和补码: (正数的反码与原码相同,负数的反码除符号位之外其余各位按位取反。正数的补码与原码相同;负数的补码除符号位以外,其余各位按位取反之后再加一。) 数据 原码 反码 补码 +99 0110 0011 0110 0011 0110 0011-99 1110 0011 1001 1100 1001 1101+127 0111 1111 0111 1111 0111 1111-127 1111 1111 1000 0000 1000 0001+0 0000 0000 0000 0000 0000 0000-0 1000 0000 1111 1111 0000 00001.18 8位二进制数原码可表示数的范围是 +127-128; 8位二进制数补码可表示的数的范围是 +127-127; 8位二进制数反码可表示的数的范围是:+127-128;1.19 16位二进制数的原码、补码、反码可表示的数的范围是多少?+32767-32768、+32767-32768、+32767-32768;1.20 至少写出3种用二进制编码状态表示十进制数字的编码方式。8421码、 5421码 2421码 余3码 十进制数0000 0000 0000 001100001 0001 0001 010010010 0010 1000 010120011 0011 1001 011030100 0100 1010 011140101 1000 1011 100050110 1001 1100 100160111 1010 1101 1010 7 1000 1011 1110 1011 8 1001 1100 1111 1100 9 李伯成微机原理习题 第二章 薛钧义主编 微型计算机原理与应用Intel 80X86系列 机械工业出版社 2002年2月第一版 陆一倩 编 微型计算机原理及其应用(十六位微型机)哈尔滨工业大学出版社 1994年8月第四版 王永山等 编 微型计算机原理与应用 西安电子科技大学出版社 2000年9月洪志全等 编 现代计算机接口技术 电子工业出版社 2002年4月仇玉章主编 32位微型计算机原理与接口技术 清华大学出版社 2000年9月 2.1 8086CPU的RESET引脚的功能是什么?答:RESET引脚称为复位引脚,输入、三态、高电平有效;RESET引脚将使CPU立即结束当前操作,处理器要求RESET信号至少要保持4个时钟周期的高电平,才能结束它正在进行的操作。CPU复位以后,除了代码段寄存器CS的值为FFFFH外,其余所有寄存器的值均为零,指令队列为空。当RESET回到低电平时,CPU开始执行“热启动”程序,由于此时CS的值为FFFFH,IP的值为0000H,所以CPU复位以后执行的第一条指令的物理地址为 FFFF0H,该单元通常放置一条段间直接转移指令JMP SS:OO,SS:OO即为系统程序的实际起始地址。2.2 在8086 CPU 工作在最小模式时,(1) 当CPU 访问存储器时,要利用哪些信号? 当CPU访问存储器时,要利用AD0AD15、WR*、RD*、IO/M*以及A16A19;(2) 当CPU访问外设接口时,要利用哪些信号? 当CPU访问外设接口时,同样要利用AD0-AD15、WR*、RD*以及IO/M*,但不使用高端地址线A16-A19;(3)当HOLD有效并得到响应时,CPU哪些引脚置高阻? 当HOLD有效并得到响应时,CPU除HOLD、HOLDA引脚外其余所有的信号引脚均为高阻态。 2.3 略2.4 说明8086 CPU READY 信号的功能。见 P232.5 8086 CPU 的NMI和INTR引脚的不同有几点?两点:(1) INTR是可以由用户用指令禁止的,(通过中断允许标志IF的开-STI和关CLI进行);而NMI不能由用户禁止;(2) INTR是可以区分优先级别的,NMI是最高级的,没有中断优先级的排队。2.6 说明8086CPU内部标志寄存器各位的含义。8086 CPU的标志寄存器(PSW或FLAG)共有9个标志位,分别是:CF (Carry Flag)- 进位或借位标志;PF (Parity Flag)- 奇偶标志;AF (auxiliary Flag)-半进位标志;ZF (Zero Flag) -结果为零标志;SF (Sign Flag) - 符号标志;OF (Overflow Flag)-溢出标志;IF (Interrupt Enable Flag)-中断允许标志;DF (Direction Flag) - 方向标志;TF (Trap Flag) - 陷阱标志。 2.7 说明8086CPU内部14个寄存器的作用。8086内部的寄存器可以分为3类:第一类:通用寄存器:AX、BX、CX、DX、SI、DI、SP、BP,共8个可以存储数据或者地址的低16位;AX、BX、CX和DX可以分成8个8位的寄存器使用;SI、DI又称变址寄存器,用于存储变址地址;SP和BP存放指针变量值。第二类:段寄存器:CS、DS、SS、ES,共4个寄存器,只能存放对应段的段地址;第三类为IP和FLAG,IP在通常情况下不允许用户访问,而FLAG是用以向用户提供了解ALU工作状态或者控制CPU工作方式的标志寄存器。 2.8 试画出8086CPU工作在最小模式时的总线形成示意图。(注:BHE*引脚为34脚-即SS0,参见P25状态编码表)四点说明:A、MN/MX端接+5V,决定了8086工作在最小模式。 B、有一片8234A,作为 时钟发生器。 C、有三片8282或74LS373,用来作为 地址锁存器。 D、当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力, 这时,要用两片8286/8287(74LS244或74LS245)作为 总线收发器。 2.9 8086/8088为什么采用地址/数据引线复用技术? 答:考虑到芯片成本,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从时序逻辑的角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。2.10 怎样确定8086的最大或最小工作模式?最大、最小模式产生控制信号的方法有何不同?答:引线MN/MX*的逻辑状态决定8086的工作模式,MN/MX*引线接高电平,8086被设定为最小模式;MN/MX*引线接低电平,8086被设定为最大模式。最小模式下所有的控制信号由CPU相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入由8086的S2S0三条状态信号引线提供。李伯成微机原理习题 第三章本章作业参考书目:1.周明德: 微型计算机IBM-PC系统原理与应用 清华大学出版社 19912.王永山等: 微型计算机原理与应用 西安电子科大出版社 19983.张怀莲: IBMPC汇编语言程序设计 电子工业出版社 1990注:本习题解中的程序仅为代码片段,可在Emu8086 version 2.57环境下仿真运行,如果在MASM下进行汇编,需添加段设置以及相应的伪指令。3.1 MOVAX,00H;立即寻址SUB AX,AX;寄存器寻址MOVAX,BX;寄存器间接寻址MOVAX,TABLE;直接寻址MOVAL,ARAY1SI;寄存器相对寻址 MOVAX,BX+6;寄存器相对寻址3.2 若1KB的数据存放在TABLE以下,试编写程序将该数据拌到NEXT之下。 程序片段如下: ORG 100hMOVCX,03FFH;数据个数LEASI,TABLE;源区首地址LEADI,NEXT; 目的区首地址AGAIN:MOVAL,SI;MOVDI,AL; 搬移INC SIINC DI; 移动地址指针DECCX; 循环计数器递减JNZ AGAIN; 循环未结束转HLT; 暂停TABLE DB 1024 dup (A); 源数据区NEXTDB 1024 dup (0);目的数据区3.3 编写10个字(16位二进制数)之和的程序ORG 100hLEASI,ADD1;LEADI,ADD2;LEABX,SUM;MOVCL,CONT;MOVCH,0; 循环初始化CLC;进位清零MADD1:MOVAX,SI;读加数1ADCAX,DIADDSI,2;移动源区地址指针ADDDI,2;移动目的区地址指针MOVBX,AX;回存计算结果ADDBX,2;移动“和”存储区地址指针LOOPMADD1;循环控制HLT;暂停ADD1DB 0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加数1ADD2DB 56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H; 加数2SUMDB 10 DUP (0); 和存储单元CONT DB5 ; 循环次数3.4 某16位二进制数,放在DATA连续的两个单元中,试编程求其平方根和余数,将其分别存放在ANS和REMAIN中。ORG 100hMOVBL,2; 除数初值AGAIN:MOVCX,NUM;预计最大循环次数MOVAL,BL;0、1的平方根除外MULBL; 得到2的平方CMPAX,CX;大于原始数据么?JGEXIT;若原始数据小于4转EXITMOVAX,CX;读数DIVBL;试除INCBL;除数递增JMPAGAIN;继续除EXIT:DECBL;去除除数自加MOVANS,BL;存商MOVAL,BL;恢复余数MULBL; SUBCX,AX;MOVREMAIN,CL;HLTNUMDW7;ANSDB ?;REMAINDB?;3.5 在DATA1之下顺序存放着以ASCII码表示的千位数,将其转换成二进制数。MOVCL,4;移位次数MOVCH,CL;循环次数MOVSI,OFFSET ASCBINCLDXORAX,AXXORDX,DXASCB1:LODSB ANDAL,7FHCMPAL,0;不大于0结束转换JLERRCMPAL,9JGASCB2;大于9转ASCB2SUBAL,30H; 数字形式二进制数减30HJMPASCB3ASCB2:CMPAL,A;大于9又小于A结束转换JLERRCMPAL,FJGERR;大于F为不合理数,结束转换SUBAL,37H;字符形式ASCII数减37HASCB3:ORDL,ALROLDX,CLDECCHJNZASCB1ROLDX,CLMOVBIN,DX;存储转换结果ERR:NOPHLTASCBINDB 1,B,4,3BINDW ?3.7 编写程序将MOLT中的一个8位数乘以20,乘积放在ANS中(用3种方式)。解:第一种方法:常规乘法运算ORG 100hMOVAL,MOLTMOVBL,20MULBLMOVANS,AXHLTMOLTDB 2ANSDW?第二种方法,将MOLT连加20次ORG 100hMOVCX,20MOVBX,MOLTXORAX,AXCLCADD1:ADCAX,BXLOOPADD1MOVANS,AXHLTMOLT DW 5ANSDW?第三种方法,将“20”连加MOLT次ORG 100hMOVCX,MOLTMOVBX,20XORAX,AXCLCADD1:ADCAX,BXLOOPADD1MOVANS,AXHLTMOLT DW 5ANSDW?3.8在DATA之下存放100个无符号的8位数,找出其最大者并将其存放在KVFF单元。ORG 100hXORDL,DLLEADI,KVFF;NEXT0:LEASI,BUFFER;MOVCL,99;比较次数为N-1次NEXT1:MOVAL,SI;INCSI;CMPDL,AL; JNCNEXT2;MOVDL,AL;DL中始终存目前最大值NEXT2:DECCL;JNZNEXT1; MOVDI,DL; 最大值存储HLTBUFFER DB ;自行定义100个数据KVFF DB ?3.9 若将数据按大小顺序排序,试编写程序.解:此处采用 “冒泡法”予以处理:ORG 100hLEADI,BUFFER;数据区MOVBL,99; 外循环次数NEXT0:MOVSI,DI;MOVCL,BL;内循环次数NEXT3:MOVAL,SI;读数INCSI; 移动指针CMPAL,SI;比较JNCNEXT5;大于转NEXT5MOVDL,SI;MOVSI-1,DL;MOVSI,AL;不大于互换NEXT5:DECCL;内循环次数减一JNZNEXT3;DECBL;外循环次数减一JNZNEXT0HLTBUFFER DB 自行定义100个字节型数据3.10 在BVFF单元中有一个BCD数A,试根据下列关系编写程序,计算结果存在DES中.A20,Y=3*A; A=60,Y=80.ORG 100hMOVAL,BVFFCMPAL,20JLEX1CMPAL,60JLEX2MOVAL,80JMPSTOPEX1:MOVBL,3MULBLJMPSTOPEX2:SUBAL,20STOP:MOVDES,ALHLTBVFFDB 8DESDB ?3.11址为DATAB开始的80个单元中,存放某班80个学生的某课程成绩,要求:统计=90分、8089分、7079分、6069分、60分以下的人数,结果存放在BTRX开始的5个单元中求平均成绩,结果存放在LEVEL中。解:寄存器使用分配:90分以上在DH,80分以上在DL,70分以上在BH,60分以上在BL,60分以下在AH,总分、均分都在DI。ORG 100hXORAH,AHXORDX,DX;统计结果清零XORBX,BX ;统计结果清零LEASI,DATALEADI,LEVELMOVCL,CONT; 总人数送循环计数器 CXgoon:MOVAL,SI ;读原始数据ADCDI, AL;累加总分 ADCDI+1,0;计算进位 CMPAL,90 JL PP8 ; 不高于90分者转PP8 INCDH ; 90-100分的人数加一 JMPSTORPP8:CMPAL,80JL PP7;不高于80分转PP7INCDL;80-89分的人数加一JMPSTORPP7:CMP AL,70JLPP6;不高于70分者转PP6INC BH;70-79分的人数加一JMPSTORPP6:CMPAL,60JLPP5;不高于60分者转PP5INC BL;60-69分的人数加一JMPSTORPP5:INCAH;低于60分的人数加一STOR: INC SI;读下一个分数LOOPGOON;CX=CX-1,CX不为零转GOON,继续统计LEASI,BUFFER;回存统计结果MOVSI,DHINCSIMOVSI,DLINCSIMOVSI,BHINCSIMOVSI,BLINCSIMOVSI,AHMOVAX,WORD PTR DI;计算平均成绩MOVCL,CONTDIVCLMOVLEVEL,AL;回存平均成绩HLT CONTDB 10 DATA DB 30,65,99,80,75, 89,100,45,60,70 BUFFER DB ?,?,?,?,? LEVELDB ? ,?3.12 求两个有符号数(DATA1,DATA2)差的绝对值,结果存入DATA3.ORG 100h MOVAL,DATA1;读入被减数 SUBAL,DATA2;减去减数 JC CHANGE; JMPSTOR CHANGE:NEGALSTOR: MOVDATA3,AL HLT DATA1DB3 DATA2DB 5 DATA3DB?3.13 存从40000H到4BFFH的个单元均写入55H,并再逐个读出,验证是否一致,若一致,置AL为7EH,否则置AL为81H.ORG 100h MOVAX,4000H; MOVDS,AX; MOVSI,0 START:MOVCX,0BFFFH BEGIN:MOVSI,55H MOVAL,SI INCSI CMPAL,55H JNZERR LOOP BEGIN MOVAL,7EH JMPSTOP ERR:MOVAL,81H STOP:HLT3.143.15 端口03FBH的BIT5为状态标志,当该位为1时,表示外设忙,不能接收数据;当为0时,表示外设闲,可以接收数据;当CPU向端口03F8H写入一个字节的数据时,03FBH的BIT5置1,当它变为0状态时,又可以写入下一个数据。据此编写将起始地址为SEDAT的50个数据输出到03F8H端口的程序。 WAIT:MOVDX,03FBHINAL,DXTESTAL,0010 0000B;(20H)JZSENDJMPWAITSEND:MOVDX,3F8HMOVAL,SI;CMPAL,0AH;输出字串结束标志符JZSTOPOUTDX,ALJMPWAITSTOP:HLT3.16 口02E0H的BIT2和BIT5同时为1,表示端口02E7H有一个字节型数据准备好可以用以输入,当CPU从该端口读入数据后,02E0端口的BIT2和BIT5就不再同时为1;只有当02E7H端口的数据再次准备好时,它们才会再次同时为1,据此编写从02E7H端口输入32个数据然后存入A1000H单元开始的区域。MOVAX,0A000HMOVDS,AXMOVSI,1000H;设置存储区地址MOVCL,20H;输入数据个数BEGIN:MOVDX,0E20HINAL,DXTESTAL,0010 0100B;测试状态位 BIT5、BIT2JZBEGIN;不同时为1继续测试MOVDX,02E7HINAL,DX;输入数据MOVSI,AL;存到指定区域INCSI;移动地址指针LOOP BEGIN;循环HLT3.17 在内存40000H开始的16K的单元中存放着一组数据,将其顺序搬移到起始地址为A0000H的区域。解:利用字符串操作指令 MOVSB,16K即16*1024=3FFFH。 MOVAX,4000HMOVDS,AXMOVAX,A000HMOVES,AXMOVSI,0MOVDI,0MOVCX,3FFFHCLD REPMOVSB HLT 3.18 上题的基础上,将两个区域的数据逐个进行比较,若有错将BL置0,全对将BL置FFH。MOVAX,4000HMOVDS,AXMOVAX,A000HMOVES,AXMOVSI,0MOVDI,0MOVCX,03FFHCLD AAB:CMPSBJNZSTOPLOOPAAB MOVBL,0FFHJMPEX1STOP:MOVBL,0;EX1: NOP HLT3.19 统计由40000H单元开始的16K个单元中所存字符A的个数,统计结果存放在DX寄存器中。 MOVAX,4000HMOVDS,AXMOVSI,0;MOVCX,3FFFH;数据个数MOVDX,0;统计结果寄存器清零 XOR DX,DXCLD AAB:LODSBCMPAL,A;比较JZAAC;字符为A转计数LOOPAAB;循环JMPSTOP;处理完毕转结束AAC:INCDX;统计结果加1DECCX;循环次数减1JCXNZAAB;CX0继续STOP:HLT3.20 编写对AL中的数据进行“偶校验”的一个过程,并将校验结果放入AL寄存器。PJYPROC NEARPUSHAXPUSHBXPUSHCXPUSHDXMOVAL,DATANDAL,ALJNPPJY1MOVAL,00H;表示为偶JMPEXITPJY1:MOVAL,FFH;表示为奇EXIT:POPDXPOPCXPOPBXPOPAXRET PJYENDPDATDB ?3.21对80000H开始的256个单元的数据加上偶校验。 ORG 100hMOVAX,8000HMOVDS,AXMOVSI,0MOVCX,100HCLDPAR0:LODSB;(MOVAL,SI ;INCSI)TESTAL,ALJNPPAR1LOOP PAR0JMPSTOPPAR1:ORAL,80H;MOVSI-1,ALDECCXJNZPAR0STOP:HLT4-1 某以8088为CPU的微型计算机内存RAM区为00000H 3FFFFH,若采用6264、62256、2164或21256各需要多片芯片? 解答: 8088 内存单元为8 bit,所以,从00000H 到3FFFFH,共需要214 个byte,共214*8bit,也就是共占用16K byte空间。由于各种芯片的数据总线根数不同,所以在连接时要特别注意芯片的位数; 对于如下芯片:6264 有8根数据线,13根地址线,故其容量为 213*8bit,即8Kbyte, 所以需要2片;62256 有8根数据线,15根地址线,故其容量为 215*8bit,即32 Kbyte, 所以仅需要1片;尽管题目要求只需要16K的空间,但在使用62256时不得不使用1片。 2164 有8根数据线,12根地址线,故其容量为 212*8bit,即4Kbyte, 所以需要4片;21256 有1根数据线,10根地址线(实际为20根,分两组),但由于仅有一根数据线,要构成八位的存储器至少需要8片,但总容量为8*256Bit,远远超过题目的要求。4.2 利用全地址译码将6264接在8088的系统总线上,其所占的地址范围为BE000HBFFFFH,试画出连接图。 解答:6264有13根地址线,连接时接到系统总线的低13位,即A0A12, 其他7根地址线A19A13的 地址译码输入应该为:1011 111 B,故而有如下的连接: 4.3 试利用6264 芯片,在8088系统总线上实现0000H03FFFH的内存区域,试画出电路连接图。 解答:0000H03FFFH的地址范围为214=16K, ,而6264芯片的容量为8*8K, 所以需要连接2片,其中,第一片的地址为00000H01FFFH,第二片的地址为02000H03FFFH,这里用74LS138的Y0、Y1 作为两个芯片的片选。 4.4 叙述EPROM的编程过程,说明EEPROM的编程过程。 EPROM编程通常采用两种模式:标准编程和快速编程: 标准编程是在VCC、VPP、CE、OE、地址信号、数据信号有效并稳定后加入50毫秒的PGM编程负脉冲,可以在写入一个数据后使OE变高而立即校验,也可以在所有数据写入后逐一校验。标准编程有两大缺陷:一是时间过长,比如2764全片编程约需7分钟,时间过长;再是编程脉冲宽度稍大容易造成芯片因功耗过大而烧毁。快速编程将PGM的宽度减小到100微妙左右,显然速度加快了500倍左右。能否使用快速编程取决于芯片的型号。EEPROM 由于可以在线擦除信息,所以可以单字节编程或自动按页编程。在单字节写入时,CE为低,OE为高,在WE加入100纳秒的负脉冲,写入时间包括擦除原有内容和写入新内容的时间,一般为10毫秒以内,可以通过查询READY/BUSY的状态判定。自动按页编程用高位线决定页地址,低位线决定页容量,然后一次写入一页内容,写完后查询READY/BUSY状态,此一过程耗时在300微秒左右,所以速度较快。4.5已有两片6116,现欲将其接到8088系统中去,其地址范围为40000H40FFFH,试画出电路连接图;写入某数据并读出与之比较,若有错,则在DL中写入01H,若全对,在DL中写入EEH,试编写此检测程序。解答:电路连接如图示:检测程序定义为一个过程,编程如下: CHKRAM PROC FARPUSHSI;PUSHDL;PUSHCX;PUSHAX; MOVCX,10000H;待检验的单元个数MOVSI,4000H; 存储体段地址MOVDS,SI;MOVSI,0000H;存储体首地址 CHK:MOVAL,0FFH; MOVSI,AL;写入检验数据FFH MOVAL,SI;读出ADDAL,01HJNZRAMERR MOV AL,0; MOVSI,AL; 写入另一格检验数据 MOVAL,SI;读出 AND AL,AL JNZRAMERR MOV DL,0EEH;所有单元全对 JMPRAMCHKOUTRAMERR:MOVDL, 01H; 发现错误单元RAMCHKOUT:POPAX;POPCX;POP DL;POP SI; RETENDP CHKRAM4.6 利用全地址译码将EPROM27128接到首地址为A0000H的内存区,试画出电路图。 解答:EPROM27128 的容量为8* 16K,所以有14根地址线, 那么如果将其接到首地址为A0000H 内存区,高6位地址线的排列应该为:1010 00B,所以有如下的连接:4.7 内存地址从40000H到BBFFFH共有多少K?解答:从40000H到BBFFFH的地址空间应该为 BBFFFH-40000H= 7BFFFH 每K为210,即3FFH,7BFFFH/3FFH=1F0H=496D 所以,该地址空间的范围应该为496KByte。 4.8 试判断8088系统中存储器译码器74LS138的输出Y0、Y4、Y6和Y7所决定的内存地址范围,电路连接见附图。解答:根据示意图,A19、A18、A17、A16 的电平值为 1X00B,由于采用的是部分译码(A18未使用),所以每个地址译码输出对应的两个地址范围。Y0对应 A15、A14、A13 均为0,所以其地址范围应该为: 当A18=0时,地址范围为:1000 0000 0000 0000 1000 0001 1111 1111 1111 B 即80000H 81FFFH 当 A18=1时,地址范围为: 1100 0000 0000 0000 1100 0001 1111 1111 1111B 即C0000H C1FFFFHY4 对应的 A15、A14、A13 为 100,所以其地址范围应该为:当A18=0 时,地址范围为:1000 1000 0000 0000 0000B 1000 1001 1111 1111 1111B 即88000H 89FFFH当A18=1时,地址范围为:1100 1000 0000 0000 0000 1100 1001 1111 1111 1111B 即C8000HC9FFFHY6 对应的A15、A14、A13 为110,所以其地址范围为: 当A18=0时,地址范围为:1000 1100 0000 0000 0000B 1000 1101 1111 1111 1111B 即 8C000H 8DFFFH 当A18=1 时,地址范围为:1100 1100 0000 0000 0000 B 1100 1101 1111 1111 1111B 即CC000HCDFFFHY7 对应的A15、A14、A14为111,所以其地址范围为:当 A18=0时,地址范围为: 1000 1110 0000 0000 0000B 1000 1111 1111 1111 1111B 即 8E000H 8FFFFH当 A18=1 时,地址范围为:1100 1110 0000 0000 0000B 1100 1111 1111 1111 1111 B 即CE000HCFFFFH。 李伯成微机原理习题 第五章本章作业参考书目:1. 王永山等: 微型计算机原理与应用 西安电子科大出版社 19983. 洪志全等 编 现代计算机接口技术 电子工业出版社 2002年4月5-1 满足那些条件8086CPU才能响应中断源的中断请求?参考答案: 8088/8086的中断承认需要满足4个条件:(1) 一条指令执行之后-因为8088/8086CPU只在指令周期的最后一个时钟周期检测INTR信号;(2) 中断允许标志IF=1;(3) 没有发生 NMI、HOLD和RESET;(4) 指令STI、IREI指令执行之后须再执行一条其他指令,但一些指令组合(如REP)要视为一个指令总体。5-2 说明8088/8086 软件中断指令INT n的执行过程。 由指令INT n引起的中断也称为“异常”,即软件中断或内部中断。这里,INT 为指令操作码,n 是中断类型号(中断向量码);当该指令执行时,CPU 根据中断向量码的数值在中断向量表(IDT-Interrupt Direction Table)找到相应的中断服务程序入口地址,在对CS 、IP和FLAG进行入栈保护之后,进而转向指定程序的运行。5-3 用三态门 74LS244 作为输入接口,接口地址规定为04E5H,试画出其与8088的总线连接图。解:根据题意,当地址线上的电平为 0000 0100 1110 0101 且IOR信号为低(IOR低电平有效)时,74LS244的门控信号E1、E2应该为低,据此画出下列电路:5-4 利用具有三态输出的锁存器74LS374 作为输出接口,就接口地址为0E504H,试画出连接图。若5-3题中的输入接口的BIT3、BIT4、BIT7同时为1时,将DATA为首地址的10个内存数据连续由输出接口输出。若不满足则等待,试编写程序。解:根据题意,当地址线上的电平为 1110 0101 0000 0100 且IOW信号为低(IOW低电平有效)时,74LS374的时钟端CP 应该为低,而 74LS374的OE始终为低,据此画出下列电路:根据题5-3和题5-4 电路,如果题5-3电路中的BIT3、BIT4 和BIT7 同时为1,则将以DATA为首地址的10个数据连续由0E504H输出口输出,不满足条件等待,对应的程序段如下: OUTWAIT : MOVDX,04E5HIN AL,DXTEST AL,98H;10011000BJZOUTWAIT;MOVSI,OFFSETDATA MOVCL,0AH;数据个数MOVDX,0E504HOUTPUT:MOVAL,SIIN
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!