微机原理与接口技术_第1页
微机原理与接口技术_第2页
微机原理与接口技术_第3页
微机原理与接口技术_第4页
微机原理与接口技术_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

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

文档简介

<计算机技术>习题解第1章1.1写出下列十进制数的8位二进制补码表达解:54=00110110B37=00100101B111=01101111B253超过8位补码范围0.1=0.00011010.63=0.1010001B0.34=0.01011000.21=0.00110111.2转换下列二进制数为十进制数解:101111011370.1011111=95/128=0.74218750.0011010=13/64=0.20312510011001.110011=153+51/64=153.796873=4551.3写出下列带符号数的原码、反码、补码和移码表达(用8位二进制代码表达)解:+112=127-15[+112]原=01110000B[+112]反=01110000B[+112]补=01110000B[+112]移=11110000B0.625=0.1010000B[0.625]原=[0.625]反=[0.625]补=0.1010000B小数无移码–124=127-3=01111100B[-124]原=11111100B[-124]反=10000011B[-124]补=10000100B[-124]移=00000100B–0.375=48/128=0.0110000B[-0.375]原=1.0110000B[-0.375]反=1.1001111B[-0.375]补=1.1010000B小数无移码–117=127-10=1110101[-117]原=11110101B[-117]反=10001010B[-117]补=10001011B[-117]移=00001011B+0.8125=104/128=0.1101000B[+0.8125]原=[+0.8125]反=[+0.8125]补=0.1101000B小数无移码1.4给出以下机器数,求其真值(用二进制和十进制数)表达解:X=+(32+7)=+39=+0100111B[x]补=10101101B[x]原=11010011BX=-1010011B=-(64+16+3)=-83X=+1000110B=+70[X]原=10101101BX=-0101101B=-(32+13)=-451.5已知[x]补和[y]补的值,用补码加减法计算[x+y]补和[x-y]补,指出结果是否溢出(1)[x]补=0.11011,[y]补=0.00011(2)[x]补=0.10111[y]补=1.00101(3)[x]补=1.01010[y]补=1.10001(4)[x]补=1.10011[y]补=0.11001解:(1)[x]补=0.11011,[y]补=0.00011[X+Y]补=[x]补+[y]补=0.11110X+Y=+15/16=+0.1111B[X-Y]补=[x]补+[-y]补=0.11000X-Y=+12/16=+0.1111B(2)[x]补=0.10111,[y]补=1.00101[X+Y]补=[x]补+[y]补=1.11100X+Y=-0.001B=-1/8[X-Y]补=[x]补+[-y]补=1.10010(上溢)(3)[x]补=1.01010,[y]补=1.10001[X+Y]补=10.11011[X-Y]补=[x]补+[-y]补=11.11001X+Y=0.11011B下溢X-Y=-0.00111B=-7/32(4)[x]补=1.10011,[y]补=0.11001[X+Y]补=00.01100[X-Y]补=[x]补+[-y]补=10.11010X+Y=(-13+25)/32=12/32=3/8X-Y下溢给出x和y的二进制值,用补码加减法计算[x+y]补和[x-y]补,并指出结果是否溢出解:X=0.10111Y=0.11011[X+Y]补=01.10010[X-Y]补=[x]补+[-y]补=11.11100X+Y正溢X-Y=-1/8X=0.11101Y=0.10011[X+Y]补=01.10000[X-Y]补=[x]补+[-y]补=00.01010X+Y正溢X-Y=10/32X=0.11011Y=-0.1010[X+Y]补=00.00111[X-Y]补=[x]补+[-y]补=01.01111X+Y=7/32X-Y(上溢)X=-0.11111Y=0.11011[X+Y]补=11.11100[X-Y]补=[x]补+[-y]补=10.00110X+Y=-0.00100=-1/8X-Y(下溢)X=-0.11011Y=0.10100[X+Y]补=11.11011[X-Y]补=[x]补+[-y]补=10.10001X+Y=-0.00111=-7/32X-Y(下溢)X=-0.11010Y=-0.11001[X+Y]补=10.01101[X-Y]补=[x]补+[-y]补=11.11111X+Y(下溢)X-Y=-0.00001=-1/32(7)X=-1011101Y=+1101101[X+Y]补=[X-Y]补=[x]补+[-y]补=X+Y=00010000=16X-Y=54(下溢)(8)X=+1110110Y=-1001101[X+Y]补=[X-Y]补=[x]补+[-y]补=X+Y=41X-Y=-61(上溢)(9)X=+1101110Y=+1010101[X+Y]补=[X-Y]补=[x]补+[-y]补=X+Y(上溢)X-Y=25(10)X=-1111111Y=-1101101[X+Y]补=[X-Y]补=[x]补+[-y]补=X+Y(下溢)X-Y=-0010010=-18写出下列数据的浮点数表达,基数为2,设阶码为5位(含1位阶符),尾数为11位(含1位尾符),规定尾数用补码,阶码用移码。(1)12510(2)101012(3)–0.0013810(4)23710((5)–1101012(6)10111112解12510==0.1111101×27表达为00111,101012=0.10101×25表达为00101,-0.0013810=-1447.03488/220=-1447/220=-0.00000,00001,01101,00111B(1024+256+128+32+7=1447)=-0.×2-9=1,10111.([-9]原=11001)=1,10111.23710==0.11101101×28=0,01000.-1101012=-0.110101×28=1,00110.10111112=0.1011111×27=0,00111,10111111.8用32位二进制浮点数表达,阶码9位(其中1位为阶符),尾数23位(其中1位为尾符),规定阶码为移码表达,尾数为补码表达。请问:最大正数是多少?最小正数是多少?绝对值最大的负数是多少?解:最大正数X,XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXX9位22位+2255×0.22位=+2255×(222-1)/222=2233×(222-1)最小正数+2-256×0.=2-256×1/222=2-278绝对值最大的负数(最小数)1,.=-2255第2章2.1用真值表验证下列公式:(1)A+BC=(A+B)解:ABCA+BC(A+B)·(A+C)0000000100010000111110011101111101111111(2)A+=A+B解:ABA+A+B0000011110111111(3)解:AB0000011110111100(4)解:AB10011011110111111(5)A⊙B⊙C解:ABCA⊙B⊙C0000000111010110110010011101001100011111(6)解:

ABC00011001000101101100100001010011000111002.2写出下列表达式的对偶式:F=(A+B)(C+DE)+G解:F’=(A·B)++(C·(D+E)·GF=解:F’= F=解:F’=(A⊙C)F’=F=解:F=(A⊙B)·(C⊙D)+(AB)·(CD) =(A⊙B)⊙(C⊙D) =(AB)⊙(CD)=(AB)(C⊙D)=(A⊙B)(CD)2.3写出下列函数的“反”函数:(1)F=AB+解:(2)F= 解:(3)F=解:(4)F=解:F= =X⊙ ==X⊙Y = =2.4应用公式化简法化简下列各函数式:(1)F=解:F= = = = =(2)F=(A+B)C+解:F=AC+BC+ = =C+C+AB =AB+C(3)F=解:F= = = = =(4)F=AB+ABD++BCD解:F=AB+ABD++BCD=AB++BCD=AB+2.5运用卡诺图,化简下列逻辑函数:(1)F=(2)F=(3)F=(4)F=(A+B+C+D)(A+B++D)(A++C+D)(A+++D)(+)(5)f(A,B,C)=∑m(0,2,4,6)(6)f(A,B,C,D)=∑m(0,1,2,3,4,6,8,9,10,11,12,14)(7)f(A,B,C,D)=∑m(2,3,6,7,8,10,12,14)(8)f(A,B,C,D)=∑m(0,1,4,5,12,13)ABC00011110011111(9)f(A,B,C,D)=∏m(0,1,2,3,4,6,8,10,12,13,14)(10)f(A,B,C,D)=∑m(1,4,9,13)+∑d(5,6,7,10)(1)F=解:F=ABC000111100101111110(2)F=解:===ABCD000111100011011111111011(3)F=解:F=(4)F=(A+B+C+D)(A+B++D)(A++C+D)(A+++D)(+)ABCD00011110000011011100111100100011解===ABC00011110011111(5)f(A,B,C)=∑m(0,2,4,6)解:f(A,B,C)=(6)f(A,B,C,D)=∑m(0,1,2,3,4,6,8,9,10,11,12,14)解:f(A,B,C,D)=ABCD0001111000111101111111101111(7)f(A,B,C,D)=∑m(2,3,6,7,8,10,12,14)ABCD000111100011011111101111解:f=(8)f(A,B,C,D)=∑m(0,1,4,5,12,13)ABCD0001111000111011111110解:f=(9)f(A,B,C,D)=∏m(0,1,2,3,4,6,8,10,12,13,14)ABCD000111100000000101d1110111100000解:f= 或=(10)f(A,B,C,D)=∑m(1,4,9,13)+∑d(5,6,7,10)ABCD00011110001011d1111d10dd解:f=解:f=2.6化简逻辑函数F=,并用与非门实现之。解:画出卡诺图得 F=AC+AB+BC = =ABC000111100111112.7已知逻辑电路如图习2-1所示,试分析其逻辑功能。

解:F= Z1= Z2= Z3=ABC00011110011111111 Y== = = = = =图习2-1习题2.7图2.8用或非门设计一个组合电路,其输入为8421BCD码,输出L当输入数能使4整除时为1,其它情况下为0(0可被任何数整除)。规定有设计过程,最后给出电路图。解:(1)真值表DCBAL000010001000100001100100101010011000111010001100101010d1011d1100d1101d1110d1111d (2)逻辑函数式 L= 无关项为~DCBA即ABCD000111100011d101d11dd10dd (3)卡诺图 L= = = L=即(B+A=0) (4)若不考虑无关项 L===考虑无关项 L=== =2.9图习2-2所示为一多功能函数发生器,其中C2、C1、C0为三个控制信号,X、Y为数据输入,试列表说明当C2、C1、C0为不同取值组合时,输出端F的逻辑功能(F=f(X,Y)的表达式)。图习2-2习题2.9图解:与非门注上编号A、B、D、E图习2-2习题2.9图当C2、C1、C0=000时,A=1 , B=1, D=1, E=XF===X当C2、C1、C0=001时,A=1 , B=1, D=, E=G===F===X+Y当C2、C1、C0=010时,A=1 , B=Y, D=1, E==G===F===X+当C2、C1、C0=011时,A=1 , B=Y, D=, E==1G===0F==1当C2、C1、C0=100时,A=, B=1, D=1, E==XG==== ==当C2、C1、C0=101时,A=, B=1, D=, E==G==== ==F==Y当C2、C1、C0=110时,A=, B=Y, D=1, E===G==== ==F==当C2、C1、C0=111时,A=, B=Y, D=, E===1G=====F===2.10写出图习2-3所示电路的状态方程。图习2-3习题2.10图解:(a)Qn+1=Jn+Qn J=K=1 Qn+1=n(b)Qn+1=Jn+Qn =nn+nQn =n(c)Qn+1=Jn+Qn K=QJ=1 Qn+1=n+nQn=n (d)Qn+1=Jn+Qn K=1J= Qn+1=nn+0=n 2.11设计一个同步两位减法计数器,当输入X=0时,计数器的状态不变;当X=1时,状态依次为11,10,01,00,11……。解:(1)根据题意,画出这个减法计数器的状态转换器,如图(a)所示。 (2)由图(a)列出状态转换真值表,如图(b)所示。 (3)由图(b)画出卡诺图,如图(c)所示,由此简化得控制输入逻辑方程: W1n= J1n=Xn2n W2n= J2n=Xn K1n=Xn2n K2n=Xn (4)由此画出同步两位减法计数器逻辑图,如图(d)所示。 (建议试用D触发器设计该电路)即刻输入原状态新状态即刻控制输入XnQ1nQ2nQ1n+1Q2n+1W1nW2n01111ss11110sR01010sr11001RS00101rs10100rR00000rr10011SS 图(b) Q1nCQ2n000111100rrss1SrsRQ1nCQ2n000111100rssr1SRRSW1n图(c)W2n2.12分析图习2-4的时序网络,最后画出其状态转换图。图习2-4习题2.11图解:(1)图习2-4中组合电路是一个异或门,存贮器是两个J-K触发器。 (2)由图习2-4得即刻控制信号及即刻输出信号的逻辑方程式为: 图习2-4习题2.12图J1n=K1n=1,Zn=Q1n,J2n=K2n= (3)图J-K触发器的特性方程式为: Qn+1= 将上述逻辑方程代入特性方程得新状态的逻辑方程为: Q1n+1=, Q2n+1= (4)Xn,Q1n和Q2n有8种组合,根据以上逻辑方程,列出状态转换真值表(a)。(a)状态转换真值表即刻输入原状态即刻控制输入新状态即刻输出XnQ1nQ2nJ1nK1nJ2nK2nQ1n+1Q2n+1Zn00011001000011100111010111101001111110011001111110101111110111011000001111100011 (5)由表(a)得状态转换表(b)。 状态转换表(b)Q1n+1Q2n+1/ZnQ1nQ2nXn010010/011/00111/110/11001/000/01100/100/1 (6)由(b)得状态转换图(c)。1010 Xn/Zn0/0 0/00001 1/01/10001 1/01/111 0/1 0/111第3章3.1采用半加器构成一个具有加1功能的运算电路解:设为4位加1器加1功能即将操作数加1。如图3-1所示图中,A3,A2,A1,A0为待加1的操作数,S3,S2,S1,S0为结果操作数,加1操作由HA0的Y端输入1而实现的。图3-13.2用4个全加器设计一个具有4位减1功能的运算电路解:1.先把4个FA加上异或门及控制端M后变为4个ASU,图3-22.然后按图3-所示,接成4位减1电路,操作数为A3,A2,A1,A0,减1操作由M=1,B3,B2,B1,B0为0001实现。3.3画出一个8位移位电路的完整电路,该电路具有右移一位、左移一位和直通的功能,用控制信号S1和S0进行选择。解:电路如图3-3所示。图中:1)S1S0=01时,为直通,b7b6b5b4b3b2b1b0=0a7a6a5a4a3a2a1,a0移出到C2)S1S0=10时,为右移1位,b7b6b5b4b3b2b1b0=a7a6a5a4a3a2a1a03)S1S0=00时,为左移1位,b7b6b5b4b3b2b1b0=a6a5a4a3a2a1a00,a7移出到C图3-33.4用浮点数运算环节对下列数据进行二进制运算,浮点数格式为:5位阶码(含1位阶符),11位尾数(含1位尾符)1)56+552)56×55解:1)56+55设阶码为5位,尾数为11位(其中1位为尾符)56=1110002=(-1)0×26×0.111000[56]浮=0,00110.55=1101112=(-1)0×26×0.110111[55]浮=0,00110.*对阶因阶码同样,不用对阶*尾数相加+00.=01.*规格化上溢,右规得00110,01.=00111,0.*舍入不用*查溢无溢出[56+55]浮=0,00111.55+56=27×0.1101111=11011112=1112)56×55[56]浮=0,00110.[55]浮=0,00110.阶码相加得00110+00110=01100尾数相乘得×0.=0.[56×55]浮=0,01100.56×55=212×0.=2=30803.5用浮点数加法流程对数据0.5和-0.4375进行二进制加法操作,假定可存储4位尾数。解:(1)用原码表达0.5=1/2=0.1000×20-0.4375=-7/16=-0.0111=-0.1110×2-1对阶-0.4375=-0.1110*2-1=0.9111×20尾数相加0.1000+(-0.0111)=0.0001规格化0.0001×20=0.1000×2-3舍入与查溢无须0.5+(-0.4375)=0.1000×2-3=0.0001=1/16(2)用补码表达(阶码4位,尾数5位,各含1位符号位)[0.5]浮=0,0000.1000-0.4375=-7/16=-0.0111=-0.1110×2-1补码表达为1.0010×2-1[-0.4375]补=1,1111.0010对阶[-0.4375]补=1,0000.1001尾数相加1000+11.1001=00.0001规格化0001×20=00.1000×2-3舍入与查溢无须0.5+(-0.4375)=0.1000×2-3=0.0001=1/163.6用浮点数乘法流程对数据0.5和-0.4375进行二进制乘法操作,假定可存储4位尾数。解:0.5=1/2=0.1000*20-0.4375=-7/16=-0.0111=-0.1110*2-1阶码相加0+(-1)=-1尾数相乘0.1000×0.1110=0.01110000×2-1规格化0.1110×2-2无须舍入,无溢出0.5×(-0.4375)=-0.1110×=2=-0.001110=-7/32=-0.218753.7用一个算术运算部件、一个逻辑运算部件和一个4选1的选择电路设计一个具有算术运算、逻辑运算和移位运算功能的ALU部件。解:电路见图3-4图中,4个选择信号S3S2S1S0的作用S1S0用于选择电路S1S0F功能00I0左移01I1右移10I2逻辑运算11I3算术运算S3S2于算术运算电路和逻辑运算电路S3S2算术运算逻辑运算00+与01-或10×非11÷异或图3-4第4章4.1解:CL=[09226H]=F6H[BP][DI]=[1E4F6H]=CX=5678HBX=0056H;AX=[09228H]=1E40HSI=[09226]=00F6H;[SI]=[1E4F6H]=BX=0024HAX=5678H;[BX+20H][SI]=1234H4.2解:AX=1352HAX=26FFH[11350H]=33H;[11351H]=3CHAX=5188HAX=5188H;SP=1352H[11354H]=ECH;[11355H]=1AH;SF==ZF=PF=OF=0;CF=1BH=75H;SF==ZF=PF=OF=0;CF=1[11352H]=00H;[11353H]=26H;CF不变[11352H]=00H;[11353H]=27H;CF不变[11350H]=D2H;CF=1;OF=0[11350H]=4AH;CF=1;OF=14.3解:CS=2023H;IP=0157H(2)CS=2023H;IP=1771H(3)CS=2023H;IP=16C0H(4)CS=3000H;IP=0146HCS=2023H;IP=1770HCS=3000H;IP=0146H4.4解:AL=02H;BL=85H;CF=1AX=0000H;CF=0AX=0000H;CF=0BX=0FFFFH;CF=14.5解:转向L1转向L1转向L2转向L4转向L54.6解:AL=00HAL=01HAL=0FFH4.7解:SBBAX,0520HMOVAX,SEGTABL4.8解:MOVSI,OFFSETDIMOVSI,D2LEASI,DI4.9解:转向L1转向L24.10解:BX=0F00H;CF=04.11解:AX;带符号数4.12解:地址数据地址数据ARRAYB3FH42H63H41H41H44H42H43H43H?44H??01H?00H?03H01H00H03H01H01H00H03H03H34H00H12H05H00H4.13解:DLENGTH=38=26H4.14解:AX=1;BX=2;CX=20;DX=1;SI=40;DI=14.15解:左为助记符,由CPU执行指令时运算;右为运算符,由汇编程序在汇编时运算。4.16解:AX=0034H;CX=0000H;AX=0034H;CX=FFFFH4.17解:AX=002CH4.18解:16个4.19解:DATDB‘A’,‘B’,0,0,’C’,’D’,0,0DATDW‘BA’,0,’DC’,0DATDB‘BA’,’DC’4.20解:(1)DAT1DB20HDUP(2,3,10DUP(4),7)(2)DAT2DW‘TS’,‘DU’,’NE’,’ST’(3)COUNTEQUSIZE4.21解:MOVCX,10AAA4.22解:MOVCX,COUTADDAL,30H4.23解:DX中为$个数4.24解:XCHGSI,DIXCHGSI,DI4.25解:(1)测试AL,BL两数的符号,如为同号直接返回,如为异号,则AL与BL互换AL=77H,BL=9AH4.26编写一程序段,将AL中的第7和0位,第6和1位,第5和2位,第4和3位互换。解:MOVCX,8MOVAH,0K1:SHRAL,1RCLAH,1DECCXJNZK1MOVAL,‘A’4.27试编写一程序段,在CHAR为首址的26个字节单元中依次存放字母‘A’~‘Z’。解:MOVAL,‘A’MOVDI,OFFSETCHARMOVCX,26LOP:MOV[DI],ALINCALINCDILOOPLOP4.28设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关程序功能的指令):X 当X≥0时Y=|X| 当X<0时解:MOVAX,XCMPAL,0JGEBIGRNEGALBIGR:MOVY,AL4.29编程序段计算SUM==al+a2+…+a20,已知a1~a20依次存放在以BUF为首址的数据区,每个数据占两个字节,和数SUM也为两个字节。(规定用循环结构编写,循环控制采用计数控制)。此题考生勿需书写源程序格式,只需把试题规定的有关指令序列书写出来。)解:MOVAX,0MOVBX,OFFSETBUFMOVCX,20LOP:ADDAX,[BX]INCBXINCBXLOOPLOPMOVSUN,AX4.30编写一个完整的源程序,将BUF字节单元存放的两位BCD码,转换成2个字节的ASCII码,并分别存放在ASC和ASC+1字节单元中。例如:(BUF字节单元)=58H,那么(ASC字节单元)=35H,(ASC+1字节单元)=38H。解:DATASEGMENTBUFDB58HASCDB2DUP(?)DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,BUFANDAL,0F0HMOVCL,4SHRAL,CLORAL,30HMOVASC,ALMOVAL,BUFANDAL,OFHORAL,30HMOVASC+1,ALMOVAL,4CHINT21HCODEENDSENDSTART4.31在A1单元开始定义了一长度为N的字符串,找出其中所有的小写字母并存放到以A2开始的存储区中。记录出小写字母的个数,存放到SL单元中。请编一完整的源程序。数据段如下:DATA SEGMENTA1 DB‘…’N EQU$-A1A2 DBNDUP(?)SL DB?DATA ENDS解:DATASEGMENTA1DB‘……’NEQU$-A1A2DBNDUP(?)SLDB?DATAENDSSTACKSEGMENTPARASTACKDW10HDUP(0)STARTENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXLEASI,A1LEADI,A2MOVCX,NXORBL,BLAGAIN:MOVAL,[SI]CMPAL,‘a’JBEXITCMPAL,‘Z’JAEXITMOV[DI],ALINCBLINCDIEXIT:INCSILOOPAGAINMOVSL,BLMOVAH,4CHINT21HCODEENDSENDSTART4.32设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据相应的平方值送SQR单元。并写出主程序的调用方式。数据段如下:DATA SEGMENTDAT DBXXHSQRTABDB0,1,4,9,…77,81SQR DB?DATA ENDS解:DATASEGMENTDATDBXXHSQRTABDB0,1,4,9,……,81SQRDB?DATAENDSSTACK1SEGMENTPARASTACKDB20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AX…………CALLSUBROT……MOVAH,4CHINT21HSUBROTPROCPUSHAXPUSHBXLEABX,SQRTABMOVAL,DATTESTAL,80HJNSNEXTNEGALNEXT:XLATSQRTABMOVSQRPOPBXPOPAXRETSUBROTENDSCODEENDSENDSTART4.33编写能完毕下列规定的程序:测试字节数据STATUS,若其中位1、3、5有一位是“1”,程序就转至ROUT1;若有二位是“1”,就转向ROUT2;若三位都是“1”,就转向ROUT3;若这三位没有一位是“1”,就转向ROUT4。解:MOVAL,STATUSANDAL,00101010BJZROUT4CMPAL,00101010BJZROUT3TESTAL,00001010BJZROUT1TESTAL,00101000BJZROUT1TESTAL,00100010BJZROUT1JMPROUT2HLT4.34STRING字符串的最大长度为80个字符,字符串的结束用字符$表达。编写程序在该字符串中查找是否有空格符(ASCII码为20H),若有就将第一个空格在字符串中的位置(00~4FH)存入POST单元;若无空格则将-1存入POST。解:DATASEGMENTSTRINGDB‘……$LENT’EQU$-STRINGPOSTDB?SEARCH:MOVBX,OFFSETSTRINGMOVDL,20HMOVPOST,0FFHLOP:MOVAL,[BX]INCBXCMPAL,‘$’JZSTPCMPAL,DLJNZLOPDECBXMOVPOST,BXSTP:MOVAH,4CHINT21H第5章5.1用下列芯片构成存储系统,各需要多少个RAM芯片?需要多少位地址作为片外地址译码?设系统为20位地址线,采用全译码方式。(1)512×4位RAM构成16KB的存储系统;(2)1024×1位RAM构成128KB的存储系统;(3)2K×4位RAM构成64KB的存储系统;(4)64K×1位RAM构成256KB的存储系统;解:1)需要16KB/512×4=64片片外地址译码需11位地址线。2)需要128KB/1K×1=1024片片外地址译码需10位地址线。3)需要64KB/2K×4=64片片外地址译码需9位地址线。4)需要256KB/64K×1位=32片片外地址译码需4位地址线。5.2现有一种存储芯片容量为512×4位,若要用它组成4KB的存储容量,需多少这样的存储芯片?每块芯片需多少寻址线?而4KB存储系统最少需多少寻址线?解:4KB/512×4b=16,需要16片每片芯片需9条寻址线4KB存储系统最少需12条寻址线5.3一个具有8KB直接相联Cache的32位计算机系统,主存容量为32MB,假定该Cache中块的大小为4个32位字。(1)求该主存地址中区号、块号和块内地址的位数。(2)求主存地址为ABCDEF16的单元在Cache中的位置解:(1)区号=32MB/8KB=4K,12位块号=8KB/4×4B=512,9位块内地址=4×32/8=16,4位(字节地址)(2)主存地址为ABCDEF16的单元其二进制地址为:0101010111100110111101111(注意主存字节地址为25位区号为010101011110块号为011011110数据在Cache中的位置是01101111011115.4直接相联Cache的块长为4个32位,容量为4096字,主存容量为64K字:画出该Cache的地址映象方式(2)求主存中有多少块,Cache中有多少块解:(1)Cache的地址映象方式(2)主存中块数为64K字/4字=16K个Cache中块数为4096字/4字=1024个5.5一个计算机系统的主存容量为2MB,字长32位,采用直接映象的Cache的容量为512字,计算主存地址格式中,区号、组号、块号和块内地址字段的位数。(1)Cache块长为1字(2)Cache块长为8字解:(1)Cache块长为1字主存为2MB,21位,字长32位,字内字节地址2位,主存字地址19位区号=2MB/512×4B=1024,10位块号=512字/1字=512,9位块内地址,字地址1位(1个字),字内字节地址2位(4B)(2)Cache块长为8字主存为2MB,21位,字长32位,字内字节地址2位,主存字地址19位区号=2MB/512×4B=1024,10位块号=512字/8字=64,6位块内地址,字地址3位(8个字),字内字节地址2位(4B)5.6一个具有16KB直接相联Cache的32位微解决器,主存容量为256MB,假定该Cache中块的大小为4个32位字。(1)画出该Cache的地址映象方式,并指出主存地址不同字段的作用;(2)主存地址为ABCDE8F816的单元在cache中的位置(写出区号、块号和块内地址值解:(1)主存256MB,地址为28位区号=256MB/16K=16K个,14位块号=16KB/4×4B=1024,10位块内地址,字地址2位,字节地址4位5.7有一个Cache-主存存储层次,主存容量为8个块,Cache容量为4个块。采用直接地址映象:(1)对于如下主存块地址流:0,1,2,5,4,6,4,7,1,2,4,1,3,7,2,假如主存中内容一开始未装入Cache中,请列出每次访问后Cache中各块的分派情况(2)指出块命中的时刻(3)求出此期间Cache的命中率解:(1)时间123456789101112131415地址流0125464712413720块0000444444444441块115555511111112块22266662222223块777777777从表可见命中时刻为:7,11,12和15h=4/15=0.2675.8一个组相联映象Cache由64个存储块构成,每组包含4个存储块。主存包含4096个存储块,每块由128字组成,访存地址为字地址。(1)求一个主存地址有多少位?一个Cache地址有多少位?(2)计算主存地址格式中,区号、组号、块号和块内地址字段的位数。解:(1)主存4096块------12位,每块128字------7位,共19位Cache64块------6位,每块128字------7位,共13位(2)区号=主存块数/Cache块数=4096/64=64(6位)组号=Cache块数/组内块数=64/4=16(4位)组内块号为4(2位)块内地址为7位(字地址,每块128字)主存地址格式如下6位6位2位7位区号组号组内块号块内地址5.9有一个16KB4路组相联Cache的32位微解决器,假定该Cache的块为4个32位的字。(1)画出该Cache的结构逻辑图,指出主存地址的不同字段的作用。(2)主存地址为ABCDE8F8的单元在Cache中的什么位置。解:(1)Cache容量为16kb,地址14位;采用4路组相联结构,块地址2位;块长为4个字,块内地址2位;每个字32位(4个字节),字内字节地址2位。由(2)知主存地址为32位,则区号为32-14=18位。则逻辑结构图如下:主存地址单元ABCDE8F8的二进制表达为:101010111100110111101000111101000------------------------Cache地址为:1010001111010005.10有一个”Cache-主存”存储层次。主存共分为8个块(0~7),Cache为4个块(0~3),采用组相联映象,组内块数为2块,采用LRU(近期最少使用法)的替换算法。(1)画出主存、Cache地址的各字段相应关系;(2)画出主存、Cache空间块的映象相应关系的示意图;(3)对于如下主存块地址流:1、2、4、1、3、7、0、1、2、5、4、6、4、7、2,设主存中的內容在初始化时未装入Cache中,写出随时间的Cache中各块的使用情况;指出块失效又发生块争用的时刻;求出此期间Cache的命中率。解:(1)主存、Cache地址的各字段相应关系如下:(2)主存的第0和第1块映射到Cache的第0和第1块;主存的第2和第3块映射到Cache的第2和第3块;主存的第4和第5块映射到Cache的第0和第1块;主存的第6和第7块映射到Cache的第2和第3块;如下图所示:(3)Cache中各块的使用状况如下图所示:块失效又发生块争用的时刻为:6.7.9.10.11.12.14.15。Cache命中3次,在此期间Cache的命中率为:H=3/15=0.2。5.11设Cache的工作速度为主存的8倍,Cache被访问命中的概率为0.90,问采用Cache后,存储器性能提高多少?解:Ta=0.1Tm+0.9×Tm/8=0.2125性能为本来的1/0.2125=4.706倍,即提高了3.706倍5.12某计算机的页式虚存管理中采用长度为32字的页面。页表内容如表习5-1所示,求当CPU程序按下列2进制虚拟字地址访存时产生的实际字地址。(1)00001101(2)10000000(3)00101000表习5-1虚页号实页号装入位0000110010010111011001100101101011001110解:页面长度为32字,则页内地址5位,8位地址码巾的髙3位为虚页号,从表中查出2位实页号,与页内地址合并构成7位实际物理内存的地址。(1)虚页号为000,查得实页号01,与页内地址01101合并,得0101101;(2)虚页号为100,查得实页号10,与页内地址00000合并,得1000000;(3)虚页号为001,查得该页未装入内存,故无相应的内存地址。5.13一个虚拟存储器有8个页面,页面大小为1024字,内存有4个页面框架,页表的内容如表习5-2所示。问相应于虚拟地址4096的主存地址是什么。表习5-2虚页号实页号虚页号实页号034211526037解:方法1:运用除法和取模法页面大小为1024,虚拟地址为4096,4096/1024=4-------0,虚页号为4页内地址为0,查表得实页号为2,实际地址为2×1024+0=2048方法2:页面大小为1024,用二进制表达地址中页内地址部分为10位,髙位部分为虚页号,4096=10000000000002虚页号为4=100,页内地址为0000000000,查得实页号为2,即102,与页内号合并得实际地址为10000000000025.14一个虚拟存储器有8个页面,页面大小为1024字,内存有4个页面框架,页表的内容如表习5-2所示(同上题)。(1)问哪些虚拟地址将引起页面失效?(2)相应于以下虚拟地址的主存地址是什么?0372810231024 102578004096解:(1)虚页号为2、3、5、7的页面失效。(2)0------03728------虚页号为3,页面失效。1023------11024------07800------虚页号为7,页面失效4096------05.15.有-2732EPROM芯片的译码电路如图习5-1所示,请计算该芯片的地址范围及存储容量。图习5-1解:2732芯片的CS端是同74LS138的Y6和Y7经“与门”后的输出端相连接,欲使CS有效(低电平),规定“与门”的输出端为低电平,其输入端只要有一个为低电平,亦即Y6为低电平或Y7为低电平,都能选中2732芯片。Y6有效,A19~A11=;Y7有效,A19~A11=。由此得2732的地址范围为00000000~11111111=FF000H~FFFFFH,存储容量为4KB。从图中的连接可见,该译码器用A19~A11参与译码,8个输出中,每一个选中211=2KB个存储单元,而2732的存储容量为4KB,因此必须由2个输出端分别选中2732中的先后2个2KB的存储单元。同时必须注意的是Y6与Y7是通过一个“与门”后连接到2732的CS。地址范围为FF000H~FFFFFH,存储容量为4KB。5.16.某一存储器系统如图习5-2所示,回答它们的存储容量各是多少?RAM和EPROM存储器地址分派范围各是多少?图习5-2解:该存储系统由一片EPROM芯片和一片RAM组成,由集成译码电路74LS138进行片选译码。EPROM芯片片内地址线12条为A0~A11,直接同8088的地址线A0~A11相连(注意,这里的地址线已从双重总线AD0~AD15,A16/S3~A19/S6中分离出来;此外,由于图2.7中采用控制线IO/M,因此CPU必然为8088)。8088的高8位地址线A12~A19参与片外译码。按74LS138的工作规定G1必须为高电平,G2A、G2B为低电平,则A19~A15=11111,EPROM的CE同74LS138的Y5相接,A14A13A12=101,由此可得本题中EPROM的地址范围00000000~11111111即FD000H~FDFFFH,容量为4KB;而RAM芯片内地址线11条为A0~A10,直接同8088的地址线A0~A10相连,8088的高8位地址线A12~A19参与片外译码。这里必须注意,CPU的A11未参与RAM的片内和片外的译码,是一个任选项,是0是1都可以。这里RAM的CS同74LS138的Y1相连。A14A13A12=001,由此可得本题中RAM的地址范围为11111001X~11111001X,这样RAM的地址范围有2个,当A11=0时,地址范围为F9000H~F97FFH和F9800H~F9FFFH,存在“地址重叠”。这里还需说明的是RAM芯片的CS,OE同74LS138的Y1相连,RAM芯片的WE同“非与门”(或门)的输出端相连。这样,当CS为低电平选中RAM,同时OE为低电平,此时对RAM的读写取决于WE。当进行存储器读操作时,IO/M=“L”,WR=“H”,或门输出为高电平,RAM的WE=“H”。由6116的工作方式表可知WE=“L”,或门输出为低电平,RAM的WE=“L”,OE=“L”为读操作;当进行存储器写操作时,IO/M=L,WR=“L”,OE=“L”。由6116的工作方式表可知WE=“L”,OE=X(不管是“H”是“L”)都为写操作。EPROM的地址范围为FD000H~FDFFFH,存储容量为4KB;RAM的地址范围为F9000H~F97FFH或F9800H~F9FFFH,存储容量为2KB。由于A11未参与译码,因而有地址重叠,一个内存单元有2个地址相应。5.17.使用6116、2732和74LS138译码器构成一个存储容量为12KBROM(00000H~02FFFH)、8KBRAM(03000H~04FFFH)的存储系统。系统地址总线为20位,数据总线为8位。解:①译码地址线安排:12KBROM需采用3片2732,8KBRAM需采用4片6116。2732的容量为4K×8位,有12条地址线,片外译码的地址线为8条;6116的容量为2K×8位,有11条地址线,片外译码的地址线为9条。采用74LS138译码,每个输出端相应4KB地址范围,对6116,A11还需进行二次译码。②列出地址范围:A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0EPROM100000000000000000000(00000~00FFFH)00000000111111111111EPROM200000001000000000000(01000~01FFFH)00000001111111111111EPROM300000010000000000000(02023~02FFFH)00000010111111111111SRAMI00000011000000000000(03000~037FFFH00000011011111111111SRAM200000011100000000000(03800H~03FFFH)00000011111111111111SRAM300000100000000000000(04000H~047FFH)00000100011111111111SRAM400000100100000000000(04800H~04FFFH)00000100111111111111138引脚G2BG1CBA(G1为G1端经非门后的连线)EPROM1~EPROM3的CE分别接74LS138的Y0~Y2,SRAM1的CE同Y3,A11经或门后的输出相连,SRAM2的CE同Y3,A11经或门后的输出相连,SRAM3的CE同Y4,A11经或门后的输出相连,SRAM4的CE同Y3,A11经或门后的输出相连,如图2.17所示。图2.17存储器接口5.188086CPU执行MOV[2023]H,AX指令从取指到执行指令最少需要多少时间?设时钟频率为5MHZ,该指令的机器码为4个字节,存放在1000H;2023H开始的4个单元中。解:该条指令的机器码为4个字节存放在1000H:2023H开始的4个单元中,则取指令需2个总线周期,第一次取出1000H:2023H与1000H:2023H2个单元中的16位代码;第二次取出1000H:2023H与1000H:2023H二个单元中的16位代码;接着为执行指令,将AX中16位数传送到DS:2023H与DS:2023H两个存储单元中,因是奇地址字,需2个总线周期才干完毕。这样,从取指到执行共需4个总线周期。在无等待周期的情况下,从取指到执行共需:4×4×1/5M=3.2µs(一个总线周期在无等待周期的情况下由4个时钟周期T组成)。5.19图习5-3,为由2片静态RAM组成的微机系统存储器,此时芯片#1和芯片#2的地址范围和各自的存储总容量。图习5-3解:这是一个线选法译码电路,A14~A19未参予译码,可为无关项,芯片#1的地址范围为:A19~A14A13A12A11~A0××××××010~0××××××011~1注意虽然A12未参与芯片#1的译码,看来可为无关项,但由于A12为“0”是芯片#2选中的条件,故对芯片#1而言只能为“1”。当A19~A14为全“0”时,其地址范围为01000H~01FFFH,芯片#2的地址范围为:A19~A14A13A12A11A10~A0××××××1000~0××××××1001~1当A19~A14为全“0”时,其地址范围为02023H~027FFH,芯片#1的存储容量4KB;芯片#2为2KB。5.20用二片8K×8位的静态RAM芯片6264组成的8位微机系统的存储器电路如图习5-4所示,试计算芯片6264#1和#2的地址范围以及存储器的总容量。图习5-4解:芯片#1的的地址范围计算:A19~A15A14A13A12~A0×××××100~0×××××101~1当无关项取“0”时,地址范围为04000H~05FFFH芯片#2的的地址范围计算:A19~A15A14A13A12~A0×××××010~0×××××011~1当无关项取“0”时,地址范围为02023H~03FFFH。该存储器的总容量为16KB。5.21微机系统的存储器由5片RAM芯片组成,如图习5-5所示,其中U1有12条地址线,8条数据线,U2~U5各有10条地址线,4条数据线,试计算芯片U1和U2,U3的地址范围,以及该存储器的总容量。图习5-5解:芯片U1的的地址范围计算:A19~A14A13A12A11A10~A00~00100~00~00111~1地址范围为01000H~01FFFH芯片U2和U3的的地址范围计算:A19~A14A13A12A11A10A9~A00~010000~00~010001~1地址范围为02023H~023FFH。总容量为6KB(U1为4KB、U2、U3为1KB、U4、U5为1KB)。第6章6.1画出形成标志寄存器中判零位ZF、符号位SF、进位位CF和溢出位OF的形成电路。6.2在单总线结构的CPU中,写出下列指令的执行过程,画出执行指令的指令流程图:(1)ADDR0,R1;R0←R0+R1解:PC→MAR读存储器PC+1→PCDBUS→MDR→IRR0→Y通过单总线R1+Y→ZZ→R0(2)ADDR0,(R1);R0←(R1)+R0解:PC→MAR读存储器PC+1→PCDBUS→MDR→IRR1→MAR读存储器DBUS→MDR→YR0+Y→ZZ→R0(3)ADDR0,R1,R2;R2←R0+R1解:PC→MAR读存储器PC+1→PCDBUS→MDR→IRR0→Y通过单总线R1+Y→ZZ→R2(4)ADD(R0),R1;(R0)←(R0)+R1解:PC→MAR读存储器PC+1→PCDBUS→MDR→IRR0→MAR读存储器DBUS→MDRMDR→YR1+Y→ZZ→MDR写操作(地址R0已送入MAR)(5)ADD(R0),(R1);(R0)←(R0)+(R1)解:PC→MAR读存储器PC+1→PCDBUS→MDR→IRR1→MAR读存储器DBUS→MDRMDR→YR0→MAR读存储器DBUS→MDRMDR+Y→ZZ→MDR写操作(地址R0已送入MAR)6.3有一单总线结构的CPU,可实现下列指令操作Ⅰ(1)ADDR2,R1,R0;R2←R1+R0(2)LOADmem,R1;R1←(mem)(3)STOREmem,R1;(mem)←R1(4)JMPoffs;PC←PC+offs写出实现上述指令的指令流程解:(1)ADDR2,R1,R0;R1+R0→R2①送指令地址指令地址在PC寄存器中,一方面把PC值送存储地址寄存器MAR,并从此地址读内存。PC→MAR,读存储器②计算下一条指令的地址下一条指令地址=当前PC值+当前指令字节数若取单字节指令则PC+1→PC③读入指令内存储器中指令代码读出,通过DBUS送CPU进行译码以决定该指令的操作。DBUS→MDR→IR④源操作数寄存器R1送ALU的输入寄存器Y。R1→Y通过单总线⑤源操作数寄存器R0送ALU的输入,同Y相加输出到ALU寄存器ZR0+Y→Z⑥结果送指定寄存器R3Z→R2解:(2)LOADmem,R1;R1←(mem)取指令PC→MAR,读存储器PC+1→PC指令译码DBUS→MDR→IR,译码计算地址,读内存IR(地址段)→MAR读存储器,IR(地址段)为IR中地址部分。DBUS→MDR写回,存结果MDR→R1解:(3)STOREmem,R1;(mem)←R1取指令PC→MAR,读存储器PC+1→PC②指令译码DBUS→MDR→IR译码③计算地址写内存IR(地址段)→MARR1→MDR写存储器在写存储器时,CPU通过IR(地址段)→MAR提供内存地址,通过R1→MDR提供写入的数据。解:(4)JMPoffs;PC←PC+offs①取指令PC→MAR,读存储器PC+1→PC②指令译码DBUS→MDR→IR,译码③计算地址PC→YY+IR(地址段offs)→Z④转移Z→PC实现上述指令的指令流程见图6-。6.4在微程序控制器中,控制存储器的容量为1024字*32位,微指令有控制字、BCF和BAF等3个字段,控制字为16位,问BCF和BAF字段各有多少位?解:1024=210控制存储器的地址段BAF为10位,则BCF=32-16-10=6位。6.6写出MIPS计算机中,执行无条件转移指令j10000的操作环节,该指令的功能为goto10000解:指令的功能是将10000乘以4后装入PC寄存器,乘以4的操作用于将指令中给出的字地址转换为字节地址。指令的执行环节为:IR=Memory[PC]PC=PC+4PC=IR[25:0]<<2第7章1.CPU同外设互换的信息有三种类型:数据信息、状态信息和控制信息,请说明CPU是如何通过其三总线(地址总线、数据总线和控制总线)同外设互换这三类信息的?解:见教材(下册)P.2。CPU通过IN和OUT指令发出地址信息,选中相应的端口,通过控制总线中的M/和、信号对相应端口进行读或写,注意数据、控制和状态信息都是通过CPU的数据总线传送的。7.2.简述查询式数据传送方式的工作过程。解:见教材(下册)P.19。7.3.简述中断传送方式的工作过程。解:见教材(下册)P.22。7.4.简述三种DMA传送方式的区别。解:见教材(下册)P.24~25。7.5.简述DMA控制器同一般接口芯片的区别。解:见教材(下册)P.25。7.6.画出查询传送方式输出数据的流程图7.7.通过如图7.45的电路,可以把I/O指令寻址结构改为存储器映象I/O端口寻址的结构,试计算该电路结构中,

温馨提示

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

评论

0/150

提交评论