微机原理课后习题参考答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章2、完成下列数制之间的转换。(1)01011100B=92D(3)135D=10000111B(5)10110010B=262Q=B2H3、组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型数。答:组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。组合型:254=(001001010100)BCD非组合型:254=(000000100000010100000100)BCD7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少?答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。+32767~-32768。9、设计算机字长n=8,求下列各式的[X+Y]补和[X-Y]补,并验证计算结果是否正确。(1)X=18,Y=89[X+Y]补=00010010+01011001=01101011B=107D正确[X-Y]补=10111001B=00010010+10100111=(-71D)补正确(2)X=-23,Y=-11[X+Y]补=11101001+11110101=11011110B=(-34D)补正确[X-Y]补=11101001+00001011=11110100B=(-12D)补正确(3)X=18,Y=-15[X+Y]补=00010010+11110001=00000011B=(3D)补正确[X-Y]补=00010010+00001111=00100001B=(33D)补正确(4)X=-18,Y=120[X+Y]补=11101110+01111000=01100110B=(102D)补正确[X-Y]补=11101110+10001000=01110110B=(123D)补由于X-Y=-138超出了机器数范围,因此出错了。13、微型计算机的主要性能指标有哪些?答:CPU字长、存储器容量、运算速度、CPU内核和IO工作电压、制造工艺、扩展能力、软件配置。第二章2、8086标志寄存器包含哪些标志位?试说明各标志位的作用。答:进位标志:CF;奇偶校验:PF;辅助进位:AF;零标志:ZF;符号标志:SF;溢出标志:OF。5、逻辑地址与物理地址有什么区别?如何将逻辑地址转换为物理地址?答:物理地址是访问存储器的实际地址,一个存储单元对应唯一的一个物理地址。逻辑地址是对应逻辑段内的一种地址表示形式,它由段基址和段内偏移地址两部分组成,通常表示为段基址:偏移地址。物理地址=段基址*10H+偏移地址。6、写出下列逻辑地址的段基址、偏移地址和物理地址。(1)2314H:0035H(2)1FD0H:000AH答:(1)段基址:2314H;偏移地址:0035H;物理地址:23175H。(2)段基址:1FD0H;偏移地址:000AH;物理地址:1FD0AH。8、设(CS)=2025H,(IP)=0100H,则当前将要执行指令的物理地址是多少?答:物理地址=(CS)*10H+(IP)=20350H9、设一个16字的数据区,它的起始地址为70A0H:DDF6H(段基址:偏移地址),求这个数据区的首字单元和末字单元的物理地址。答:首字:70A0*10H+DDF6H=7E7F6H末字单元地址=起始地址+(字数-1)*2=7E7F6H+(16-1)*2=7E814H。13、80486CPU内部由哪些主要部件构成?有哪几种工作模式?答:(1)总线接口单元、指令预取单元、指令译码单元、控制单元,整数运算单元,浮点运算单元,段预存储器管理单元,高速缓冲单元。(2)实地址模式、保护虚拟地址模拟、虚拟8086模式14、80486CPU存储器最大可寻址空间是多少?虚拟存储空间是多少?两者有何区别?答:最大可寻址空间是4GB,虚拟存储空间是64TB。前者为实地址,虚拟存储空间为外部存储管理器。第三章4、指出下列指令中的源操作数和目标操作数的寻址方式。(1)MOVBX,1000H源操作数:立即寻址;目标操作数:寄存器寻址(2)MOVAL,[BX]源操作数:寄存器间接寻址;目标操作数:寄存器寻址(5)MOV[DI+1000H],BX源操作数:寄存器寻址;目标操作数:寄存器相对寻址(6)MOV[1000H],CX源操作数:寄存器寻址;目标操作数:直接寻址5、设(DS)=2000H、(ES)=2100H、(SS)=1500H、(BX)=0100H、(BP)=0040、(SI)=00A0H、(DI)=0120H,在指令MOVAX,src中,求用下列表示源操作数src的有效地址EA和物理地址PA各是多少?(1)100H[BX]EA=(100H+0100H)=0200H;PA=2000*10H+0200H=20200H(2)ES:[BX+DI]EA=0100H+0120H=0220H;PA=2100*10H+0220H=21220H(3)[BP]EA=0040H;PA=1500*10H+0040H=15040h(4)ES:[BX+10H]EA=0100H+0010H=0110H;PA=21000H+0110H=21110H6、指出下列指令中的错误,并改正。(1)MOVBL,30A0H操作数不匹配改:MOVBX,30A0H(2)MOV0010H,AL立即数不可以作为目标操作数改:MOVAX,0010H(3)XCHGAL,BX操作数类型不匹配改:XCHGAX,BX(4)MOV[AX],3456H立即数送入存储器需要说明改:MOVWORDPTR[AX],3456H(5)PUSHAL堆栈以字为操作单元改:PUSHAX(6)POPCSPOP不可以用CS为目标操作数改:POPAX(7)MOVDS,1000H立即数不能直接送入段寄存器改:MOVAX,1000HMOVDS,AX(8)MOV[BX],[1000H]存储器不可以相互传送改:MOVAX,[1000H]MOV[BX],AX(9)LDS(BX),[1000H]LDS使用时期目标为16位通用寄存器改:LDSBX,[1000H](10)LEABX,CXLEA源操作数为存储器改:LEABX,[CX]7、已知(AX)=4A0BH,[1020H]单元中的内容为260FH,写出下列每条指令单独执行后的结果。(1)MOVAX,1020H;(AX)=1020H(2)XCHGAX,[1020H];(AX)=260FH(3)MOVAX,[1020H];(AX)=260FH(4)LEAAX,[1020H];(AX)=1020H10、设一个堆栈段共有100H个字节单元,堆栈的起始地址为1250H:0000H,若在堆栈中存有5个字数据,问:(1)栈顶的物理地址多少?(2)栈底的物理地址是多少?(3)当前SS和SP的内容是多少?(4)若弹出两个数据,SP的内容是多少?答:栈底:12600H栈顶:12600-A=125F6HSS:[1250H:0000H]SP:[1250H:00F6H](4)弹出两个数据后,SP内容,00F6+4=00FAH则,SP:[1250H:00FAH]11、编程完成下列程序段,根据运算结果置标志位OF、SF、ZF、AF、PF、CF,并分析程序执行结果是否正确?为什么?(n=8)(2)122-64(4)-68+(-72)答:(2)程序:MOVAL,120MOVBL,64SUBAL,BL计算结果:00111010OF=0SF=0ZF=0AF=0PF=1CF=0(4)程序:MOVAL,-68MOVBL,-72ADDAL,BL计算结果:01110100有溢出OF=1SF=0ZF=0AF=1PF=1CF=117、判断下列指令格式的对与错,并解释错在哪里。(1)ADD25H,AX错;目标操作数不可以为立即数(2)INCBX,1错;INC只有目标操作数(3)MULAL,BL错;乘法指令目标操作数是隐含的(4)SUBBAL,3错;减法指令是SUB(5)DAAAL错;DAA后无操作数(6)NEGCX,0错;NEG后只有目标操作数(7)CMP[BX],1000H[BX+SI]对22、写出下列程序段执行后的结果。MOVCL,4MOVAL,87MOVDL,ALANDAL,0FHORAL,30HSHRDL,CLORDL,30H(AL)=37H,(DL)=35H27、试用CMP指令和条件转移指令实现下列判断(1)AX和CX中的内容为无符号数:若(AX)(CX)则转至BIGGER符号执行;若(AX)(CX)则转至LESS符号执行。(2)BX和DX中的内容为无符号数:若(BX)(DX)则转至BIGGER符号执行;若(BX)(DX)则转至LESS符号执行。答:(1)CMPAX,CXJABIGGERJBLESS(2)CMPBX,DXJGBIGGERJLLESS第四章8、按下列的要求写出段定义格式。(1)数据段的位置从0E000H开始,在该段中定义的5个字节数据,3个字数据,2双字数据,要求字节数据从偏移地址0000H开始,字数据从偏移地址0010H开始,双字数据从偏移地址0020H开始。(2)堆栈段定义100个字节(3)代码段的开始位置给有关段寄存器赋值,在程序结束时能够返回DOS。答:DATASEGMENTORG0000HD1DB00H,01H,02H,03H,04HORG0010HD2DW0000H,0010H,0020HORG0020HD3DD3DUP()DATAENDSSTACKSEGMENTSTACkDB100DUPSTACKENDSCODESEGMENTCODEASSUMECS:CODE,DS:DATASTART:……CODEENDSENDSSTART10、定义数据段,画出数据存储示意图,并说明该数据段共有多少个字节单元。DATASEGMENTD1DB12,0,’A’,-6D2DW1234H,65HD3DB3DUP(3,0,5)DATAENDS共有17个存储单元如下图:0CH00H41HFAH34H12H65H00H12、定义数据段如下,画出数据存储示意图,并说明变量X1和X2所对应的逻辑地址各是多少?DATASEGMENTAT10A0HORG0010HX1DB22,33,ORG$+0020HX2DB‘AB12CD’DATAENDS10A00H10A10H10A32HX1逻辑地址:10A0H:0010HX2的逻辑地址:10A0H:0032H13、定义数据段如下,写出执行以下指令后的结果。DATASEGMENTDA1DW2437H,14A2HDA2DB‘ABCD’03H00H05H03H00H05H03H00H05H...16H21H…41H42H31H32H43H44HDA3DD10DUP(?)DATAENDS(1)MOVBX,DA1;(BX)=2437H(2)MOVSI,OFFSETDA1;(SI)=0000H(3)MOVAL,TYPEDA1;(AL)=2(4)MOVAL,[DA2+02H];(AL)=‘C’=43H(5)MOVAL,LENGTHDA3;(AL)=10(6)MOVAL,SIZEDA3;(AL)=1014、程序中数据段定义的数据如下:DATASEGMENTNAMESDB‘GOODMORNING!’DW2050H,78H,3080HDATAENDS请指出下列指令序列执行后累加器中的结果是多少?(1)MOVBX,OFFSETNAMESMOVAL,[BX+03H](2)MOVBX,12MOVSI,3MOVAX,NAMES[BX+SI](3)MOVBX,12MOVSI,3LEAAX,NAMES[BX+SI]答:(1)[BX+03H]对应的是“D”因此结果是44H(2)78H(3)LEA将源操作数的逻辑地址送到目标操作数,因此0FH18、编写程序,将MBUF为起始单元的5个数按相反次序传送到NBUF开始的存储单元中。答:DATASEGMENTMBUFDB1,2,3,4,5COUNTEQU$-MBUF

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功