微机课后习题答案55.pdf
微机课后习题答案第一章2.画出典型的8 位激机的组成框图说明各组成部分的作用.解:8 位微机的组成框图如图1-1-2所示.各组成部分的作用为:(:PU:完成算术和逻辑运算以及控制和协调各部件工作:存储器:存储器用来存放数据和程序:外围设备:包括输入和输出设备,完成信息的输入和输出:接口电路:外南设备与系统总线之间的镶冲区.图 2-2 8 位做机的组成和图4.卜列 进制数柠为无符号数.它们的值是多少?普为带符号数.它们的值是多少?用E制衣示.(1)01101110(2)01011001(3)10001101(4)11111001答:(1)()1101110行为无符号数,其值为110:方为借符号数,式值为110.(2)01011001苦为无符号数,其值为89:若为带符号数,其值为89.(3)10001101若为无符号数,其值为141:若为带符号数,其值为-115.(4)11U1001若为无符号数,其值为249:若为带符号数,其值为-7.第二章4.对 尸 8086CPU,已知(DS)=0!50H,(CS)=0640H.(SS)=12OOH 响:(1)在数据段中可存放的数据最多为多少字的?首末地址各是什么?(2)堆栈段中可存放多少个16位的?首末地址各是什么?(3)代码段最大可存放多少个字.节的程序?首末地址各是什么?答:(1)在数据段中可存放的数据最多为M K B.首地址为()1500H.末地址为114 F H L(2)在堆栈段中“J存放3 2 K 个 16位的字,首地址为12000H.末地址为21FFFH.(3)代码段中最大可存放6 4 K B 的程序,首地址为06400H,末地址为163FFH.5.一个由2 7 个字节组成的数据区,其起始地址为BAOOH:1BA0H,试写出该数据区的首末单元的实际地址.答:数据区的首地址为BAOOH x IOH+1 BAOH=BBBAOH数据区的末地川为BBBAOH+IBII-1 =BBBBAH6.柠代码段寄存器(CS)=200011.指令指针(IP)=2000H试问指令的实际地址是什么?答:指令的实际地址为2(X)0H xlOH+2000H-22OOOH.7.已知当前数据段位于存储 的 A1000 H BOFFFH范用内.问D S 等于多少?答:因为数据段的范懵为AIOOOH-BOFFFH.数据段具有64KB,且其末地址为BOEFFH.所 以 D S 等于A100H.8.仃两 个 16位 的 字 ABCDH.l234H.它们在8086系统存储器中的地址分别是00100H及00105 H.试画出它们在存储器中存放示意图.答:这两个字在存储器中的存放示意图如卜:()01 OOHCD00101HAB()0)05 II34001()61112第三章3.设(DS)=200011,(SS)=I500H.(SI)-OOAOH.(BX)=0100H,数据变量:VAL 的偏移地址为()050 H.试指出以卜指令的源操作数是什么彳址方式?花为存储器操作数,K 物理,是多少?(1)MOV AX.OABH(2)MOV AX.(3)MOV AX,VAL(4)MOV BX.SI(5)MOV AL.VALBX(6)MOV CL.BX SI t(l)源操作数是迂即数J 址.(2)源操作数是直接寻址,有效地址E A 是一个立即数,其物理地址是:PA=(DS x 10H)+EA=(200011 x I0H)+100H=20100H(3)源操作数是直接寻址,有效地址E A 是个符号地址,其物理地址是:(4)操作数是寄存器间接寻址,其物理地址是:PA=(l)S)x I0H+(SI)=(2000H x I0H)+OOAOH=200A0H(5)源操作数是寄存器相对寻址,其物理地址是:PA=(l)S)xlOH+(BX)+V A L=(2000H x I0H)+0100H+0050H-2O15OH(6)源操作数是甚址变址寻址,其物理地址是:PA=(l)S)x IOH+(Si)+(BX)=(2(X)0ll x 10H)+00 AOI I +0100H=201 AOII4.指出卜列指令中哪些是正确的?哪些是错误的?着行错误的.请说明原因.(1)MOV AH.BX(2)M O V BX.SI(3)MOV AX.SI DI(4)MOV BX.1000H(5)X(:ll(;CS,AX(6)XCH(;BX.IP(7)PUSH CS(8)POP CS答:(1)锦误,源和目的操作数的类型(长度)不一致.(2)错误,源和目的操作数不能同为存储器操作数.(3)错误,I、D I 不能同时出现在源操作数中.(4)错误,M(八指令中源和目的操作数不能同为存储器操作数.(5)错误,交换指令不能使用段寄存器.(6)错误,交换指令不能使用IP,CS和 IP的值 股只能在执行箝移指令时改变。(7)正确,CS可作源操作数.(8)错误,C S 不能作目的操作数.5.己知(l)S)2000H.(BX)=03(X)H.(SI)c0002H.(2O3OOH)=12H.(203()1 H)34H.(20302H)=56H.(2030311)=78H.(2I4OOH)=2AH.(214O1H)=4CH.(21402H)=B7II,(21403 H)=65H.试说明卜列各条指令执行完后AX寄存器的内容.(1)M()AX,14()0H(2)M O V AX.BX(3)M O V AX,I400H(4)MOV AX,BX(5)MOV AX,11(M)HBX(6)M O V AX,BX SI(7)MOV AX,ll(M)HBX SI答:(1)(A X)=1 4 0 0 H(2)(A X)=(B X)=0 3 0 0 H(3)物理地址 P A =(2 0 0 0 H x I O H)+1 4 0 0 H=2 1 4 O O H.(A X)=4(2 A H(4)物理地址 P A =(2 0 0 0 H x I O H)+0 3 0 0 H=2 0 3 0 0 H,(A X)=3 4 1 2 H(5)物理地址 P A =(2 0()()H x I O H)+1 1 0 0 H+0 3 0 0 H 2 1 4 0 0 1 1.(A X)=4(2 A H(6)物理地址 P A =(2 0 0 0 H x I O H)+0 3 0 0 H+0 0 0 2 H=2 0 3 0 2 1 1.(A X)=7 8 5 6 1 1(7)物理地址 P A =(2 0 0 0 H x I O H)+1 1 0 0 H+0 3 0 0 H+0 0 0 2 H=2 1 4 0 2 1 1.(A X)=6 5 B 7 H6 .根据以卜要求.试写出相应的汇编语;i指令.(1)把BX寄 存 器 和1)X寄存器的内容相加.结果存入BX寄存器中.(2)用 寄 存 器B X和SI的 基 址 变 扯 寻 址 方 式 把 存 储 器 中 的 个 字 节 与A 1.寄存器的内容相加.并把结果送到A L寄存器中.(3)用 寄存器BX和位移&0 B 2 H的 寄 存器相对4址方式把存储器中的 个 字 和CX相加,并把结果送I E存储器中.(4)身位移鼠为O 5 24H的 宜 接J址方式把存储器中的一个学与立即数3(:5 A H相加,并把结果送回该存储单兀中.解:相应的W 一一言指令如下;(1)A D DB X.D X(2)A D I)A L.B X S1(3)A D I)B X +00B 2H .C X(4)A D I)W O R D PI H O 5 24H J.3 C 5 A H7.已知堆栈段寄存器SS的内容是O F F O A H,堆 栈 指 针S P的内容是0008 H.先执行两条把8 05 7H和O F 7c H分 别 进 栈 的PUSH指令.再执行 条PO P B X指 令.试 画 出 堆 栈 区 和S P的内容过程变化示意图(标出存储单元的物理地址).解:堆栈区和S P 的内容变化过程示意如图I-3.7所东1 2.试分析卜面的程序段完成什么功能?MOVCL.04SHLDX.CLMOVBL.AHSHLAX.CLSIIRBL.CLOKDi.,BL答:程匡段完成把DX(高 16位)与 AX(低 16位)组成的32位.进制数逻辑左移4 位.1 9.说明卜列程序段执行后A X 和 C X 的值是什么?SI BSUBU:INCAX.AXCX.CXAXLOOP LP答:程序段执行后(AX)=0.(CX)-0.如果在进入LOOP指令前CX 0.则LOOP指令执行的是殿大方环次数65536次.仃时候这是程序员故意设计的,有时候却是不慎发生的,特别力e x内容来n某一变星或某一计算结果时.如果属于后者,在进入LOP指令时.CX=0不进行循环,可 在LOOP指令附加一条JCXZ指令.q第四章1.如某程序中的数据定义如卜:DATI DW 2 D U P(l)DAT2 DB 16,25.42DAT3 DD?CNT EQU$-DATI问:CN T的值是多少?即$-DATA1=11($表 示当前的偏移地址)表示这个数据段有1 1个字节数据.答:C N T的 值 是I I,它&示 常 数I I.2.已知数据段定义如下,假设该敷据段从0 8 0 0 0 H开始:DATA SEGMENTV AH I DB 2!)Ui(O,?)VAK2 DW 1234H()B(;8VAR3 DB 5VAK4 DW A B DATA ENDS用示意图说明各变量在内存中的分配情况.答:各变盘在内存中的分配情况如卜:080(X)110008001H08002H0008()03 H-O8OG4 H34 H()8005 H12H08006H08(X)71108008H05 H()8009 H42 H()800A H4)H5.找 出 一 个 数 据 块 中 的 最 大 数.数 据 块 从 偏 移 地 址 1002 H 开 始 存 放,数据块的长度以16位:进 制 形 式 存 放 在 1000H J00IH 单 元,把 找 出 的 最 大 数 放 到 2000H 单 兀 中.假 设 数 据块 中 的 数 都 是 8 位无符号数.解:程 序段如卜:DATASECMEM()K(;100()11TOTALDATAlDW?:DB Al M 2,A3.:假设有若干个数ORG 20()0HRESULTDATACODEDB?ENDSSEGMENTASSl ME CS:CODE.DS:DATASTART:MOV AX.DATAMOV DS.AXLEA SI.DATAlMOV CX,TOTALDEC CXMOV AL,SIPHO:CMPAL.Si+1 JNCBl(;MOVAL,(SI+1 BIG:INCSILOOPPHOMOVBESHLT.ALMOVA H.4CHINT21HCODEENDSENI)SIA KI6.编写一程序,将健盘临入的大”字母转换为小写字母H 示.解:程序 段 如 卜,8.编写程序,比较从键盘上输入的两个字符串的长度,相同则显示“MATCH”,若不相同.则显示“NOMATCH.解:程序段如卜:DATA SEGMENTBUFFI l)B 100DB?DB 1001)1 P(?)CODESEGMENTtSSl ME:S:C()DESTAKT:MOVAH.1HINT21H:系统功能调用,键盘输入字母CMPAL.60HJNSDISPADDAL.20HDISP:MOI.DL.ALMOVAH.02HINT21H:系统功能调用,M 示小写字母MOVAll.4CHINT21HCODEENDSEND STAKrBUFF2 DB 100DB?DB 100DUP(?)EQILE DB-MATCH S NO DB NOMATCH$DATAENDSCODESEGMENTASSl ME CS:CODE.I)S;I)ATASTART:MOVAX.DATAMOVDS,AXLEADX.BUFFIMOVAH.OAHINT21H:系统功能调用.等价输入字符串1LEADX.BLFF2MOVAH.OAHINT21H:输入字符串2LEASI.BUFFILEADI.Bl FF2INCSIINCDIMOVAL.SICMPAL.1)1JZAAAMOVDX.OHSET NOJMPBBBAAA:MOVl)X OFFSET EQI I1:BBH:MOVAH.09HINT2IH:显示相关字符串MOVAH.4CHINT21HCODEENDSEND START第五章1.导体存储器分为哪儿类?试述它们的用途及生要区别.答:从应用角度在半导体存储器可分为两大类:只读存储器(l*a d(Inly Mrnu),简称R()l:随机存取存储器(Rumloni As Memory),简称 KA M .只读存储器在使用过程中,具有只能读出存储的俏息血不能写入信息或者可以写入一息但速度很慢的特点.断电后,其存储的信息仍保留不变,闪 血 也 称 为 非 易 失 性 存 储 器.由 JROM具有非易失性.故通常用于存放于定程序,如监控程序、PC机 中 的 BIOS程序等.随机存取存储器乂称为读写存储器.RAM是指在使用过程中利用程序可随时读写息的存储器,断电后,其存储的仔息会消失,也称为易失性存储器.KAV在线使用可读、可叮.常用于存储用户调试程序和程序执行过程产生的中间数据、运算结果等.5.试述线选、部分译码和个译码方式的特点.答,将 CPU的高位地址线全部参与译码,称为全译玛.全译码方式使存为全中任一单元都仃惟一的确定的地址.若只 选 择 CPU的一部分育位地址线参与译码,每个存储单元会有多个地址对应,这称为部分注码.线选为部分译码的 个特例,股来用高位地址线中的某 地址 线 I1接作存储器的片选信号.线选电路连接简单,在容盘较小的微处理器系统中使用.6.写 出 卜 列 存 储 器 芯 片(北 DHAM)的基本地址范惘.这些芯片各需几位地址线实现片内 J 址?若要盥成64 M l的存储器各需几片?(1)4416 芯 片(16K x4 位)(2)6116 芯 片(2K x8 位)(3)27128 芯 片(16K x8 位)(4)62256 芯片 0 2 K x 8 位)解:基本地址IE围 是 指 C P I用作片选的高位地址信号全为。.用作字选的地址号从仝0(最小)变化至全1 (最大)所时应的地址区间.这与芯片的地址线数目有关.(1)4416芯片地址单兀数为16K=2”.地址线数H 14 条,所以需14条地址线实现片内J址,基本地址范围为00000 03FFFH.纸 成 64KB的存储器所需片数=黑 =8 片.故8 片16K x44416可组成64KB的存储卷.(2)6116芯片地址单元数为2 K=2,地 址 线 数 目 I I 条,所 以 需 1 1 条地址线实现片内J址,基本地址藏用为00000-007FFH.组 成 64KB的存储器所需片数=黑 鸟=3 2 片.故 32片2K x 86116可组成64KB的存储器.(3)27128芯 片 地 址 单 元 数 为 16K2”.地 址 线 数 目 14条,所 以 需 14条地址线实现片内J 址,基本地址用国为00000 03FFFH.组 成 64KB的 存 储 器 所 需 片 数=黑R=4 片.故 416K x8片 27128可 组 成 64KB的存储器.(4)62256芯片地址单 元 数 为 32K=2”,地 址 线 数 目 1 5 条,所 以 需 15条地址线实现片内J 址,基本地址范围为00000-07 FFFH.组 成 64KB的 存 储 器 所 需 片 数=.B=2 片,故 232Kx 8片 62256可组成(4 K B 的存储器.7.某一 16 位 微 处 理 器 系 统,选 用 8 片 2732作 只 读 存 储 器.选 用 16片 2164作读写存储器.问;(1)该 系 统 的 BOM JLXM 容里各是多少?(2)若 RAM 的 起 始 地 址 为 40000H.RO M 的 起 始 地 址 为 38OOOH,且地址是连续的,则它们的末地址分别是多少?答:系统中 ROM 容 3 为 8 x4KBs32KB.RAM 容以为 16 x(64K x 1)=128KB.(2)系 统 中 仃 128KB RAM,4 本 地 址 为 00000 I F U F U.起 始 地 址 为 40000H.则末地址为 40000H+1FEEFH-5E F H H:系统中有 32KB KOM.基 本 地 址 为 000()0 07FFFH.若起始地址 为 38(X)011.则末地址为 38OOOH+07FFFH=3FFEEH.