微型计算机原理课后习题答案-王忠民主编_第1页
微型计算机原理课后习题答案-王忠民主编_第2页
微型计算机原理课后习题答案-王忠民主编_第3页
微型计算机原理课后习题答案-王忠民主编_第4页
微型计算机原理课后习题答案-王忠民主编_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、王忠民主编西安电子科技大学出版部分习题答案第二章电脑中的数值和编码1、将十进制数转换为二进制和十六进制129.75=10000001.11B=81.CH(3)15.625=1111.101B=F.AH218.8125=11011010.1101B=DA.DH(4)47.15625=101111.00101B=2F.28H2、将以下二进制数转换为十进制和十六进制(1)111010B=58=3AH10111100.111B=188.875=BC.EH0.11011B=0.84375=0.D8H11110.01B=30.25=1E.4H3、完成以下二进制数的加减法运算1001.11100.01=11

2、10.00(2)0011110110111011=11111000(4)1101010110.100101100001.0011=01110101.011001011101.0110101101.1011=101111.10114、完成以下十六进制数的加减法运算(1)745CH56DFH=D14BH(3)12AB.F73CD.05=1678.FCH(2)ABF.8HEF6.AH=9C28.EH(4)6F01HEFD8H=7F29H5、计算以下表达式的值128.812510110101.1011B1F.2H=101010101.1010B287.6810101010.11H8E.EH=103.C

3、EH18.91010.1101B12.6H1011.1001=36.5256、求以下十进制数的补码。(1)X=33的补码:11011111,(2)Y=33的补码:00100001(3)Z=-128的补码:10000000,(4)N=+127的补码:01111111,(5)A=-65的补码:10111111,(6)B=65的补码:01000001,(7)C=-96的补码:10100000(8)D=96的补码:01100000,选取字长n为8位和16位两种情况,111111111101111100000000001000011111111110000000000000000111111111111

4、111101111110000000001000001111111111010000000000000011000007、写出以下用补码表示的二进制数的真值X=1000000000000000H补Y=0000000100000001H补Z=1111111010100101H补A=0000001001010111H补X=1000000000000000H=32768Y=0000000100000001H=257Z=0000000101011011H=347A=0000001001010111H=5998、设机器字长为8位,最高位为符号位,试对以下格式进行二进制补码运算,并判断结果是否溢出。(1)

5、43843Li=00101011B,8Li=00001000B补补43+8L=00101011B+00001000B=00110011B=33H补补00101011B+00001000B00110011Bcs=0,cD=o,of=cSCD=00=0.无溢出(1)43833H无溢出(2)527D3H无溢出(3)609096H溢出(4)72840H无溢出(5)33(37)0BAH无溢出(6)90(70)60H溢出(7)9(7)FEH无溢出(8)6090E2H无溢出9、设有变量x=11101111By=11001001B,z=01110010B,v=01011010B,试计算x+y=?,x+z=?,

6、y+z=?,z+v=?,请问:假设为无符号数,计算结果是否正确?假设为带符号补码数,计算结果是否溢出?x+y=11101111B11001001B=10111000B=1B8H11101111B+11001001B10111000B假设为无符号数假设为带符号补码数CF=1不正确CF=1,DF=1oF=0不溢出x+y=0B8Hx+z=61Hy+z=3BHz+v=0CCH不正确不正确不正确正确不溢出不溢出不溢出溢出第三章80X86微处理器1简述80868088CPU中BIU和EU的作用,并说明其并行工作过程。答:(1)BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数

7、据传送。EU的作用:执行指令,并为BIU提供所需的有效地址。并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。这样就实现了取指和执行指令的并行工作。2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?答:80868088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。其主要作用是:数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。AX(Accumulator)称为累加器。用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的I/O指令都使用该寄存器与外设端口交换信息

8、。BX(Base)称为基址寄存器。用来存放操作数在内存中数据段内的偏移地址,CX(Counter)称为计数器。在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。DX(Data)称为数据寄存器。在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。地址寄存器:一般用来存放段内的偏移地址。SP(StackPointer)称为堆栈指针寄存器。在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。BP(Ba

9、sePointer)称为基址寄存器。作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。SI(SourceIndex)称为源变址寄存器。SI存放源串在数据段内的偏移地址。DI(DestinationIndex)称为目的变址寄存器。DI存放目的串在附加数据段内的偏移地址。段寄存器:用于存放段地址CS(CodeSegment)称为代码段寄存器,用来存储程序当前使用的代码段的段地址。CS的内容左移4位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的物理地址。DS(DataSegment)称为数据段寄存器,用来存放程序当前使用的数据段的段地址。DS

10、的内容左移4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地址。SS(StackSegment)称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地址。堆栈是存储器中开辟的按“先进后出”原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点和现场。ES(ExtraSegment)称为附加数据段寄存器,用来存放程序当前使用的附加数据段的段地址。附加数据段用来存放字符串操作时的目的字符串。控制寄存器IP(InstmcdonPointer)称为指令指针寄存器,用来存放下一条要读取的指令在代码段内的偏移地址。用户程序不能直接访问IP。FLAGS称为

11、标志寄存器,它是一个16位的寄存器,但只用了其中9位,这9位包括(个状态标志位和3个控制标志位。它用来反映算术运算和逻辑运算结果的一些特征,或用来控制CPU的某种操作。380868088CPU中有哪些寄存器可用来指示操作数在存储器中某段内的偏移地址?答:可用来指示段内偏移地址的寄存器共有6个:IP、SP、BP、BX、SI、DI8086/8088CPU中标志寄存器FLAGS有哪些标志位?它们的含义和作用如何?答:标志寄存器中的标志共有9个,分为两类:状态标志6个和控制标志3个。其作用是:状态标志:用来反映算术和逻辑运算结果的一些特征。CF(CarryFlag)进位标志位。当进行加减运算时,假设最

12、高位发生进位或借位,则CF为1,否则为0。该标志位通常用于判断无符号数运算结果是否超出了电脑所能表示的无符号数的范围。PF(ParityFlag)奇偶标志位。当指令执行结果的低8位中含有偶数个1时,PF为1,否则为0。AF(AuxiliaryFlag)辅助进位标志位。当执行一条加法或减法运算指令时,假设结果的低字节的低4位向高4位有进位或借位,则AF为1,否则为0。ZF(ZeroFlag)零标志位。假设当前的运算结果为0,则ZF为1,否则为00SF(SignFlag)符号标志位。当运算结果的最高位为1时,SF=1,否则为00OF(OverflowFlag)溢出标志位。当运算结果超出了带符号数所

13、能表示的数值范围,即溢出时,OF=1,否则为0。该标志位通常用来判断带符号数运算结果是否溢出o控制标志位:用来控制CPU的操作,由程序设置或清除。它们是:TF(TrapFlag)跟踪(陷阱)标志位。它是为测试程序的方便而设置的。假设将TF置1,8086/8088CPU处于单步工作方式,否则,将正常执行程序。(InterruptFlag)中断允许标志位。它是用来控制可屏蔽中断的控制标志位。假设用STI指令将IF置1,表示允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求信号;假设用CLI指令将IP清0,则禁止CPU接受可屏蔽中断请求信号。IF的状态对非屏蔽中断及内部中断没有影响。DF(Dir

14、ectionFlag)方向标志位。假设用STD将DF置1,串操作按减地址方式进行,也就是说,从高地址开始,每操作一次地址自动递减;假设用CLD将DF清0,则串操作按增地址方式进行,即每操作一次地址自动递增。8086/8088CPU的地址总线有多少位?其寻址范围是多少?答:8086/8088地址总线有20根,寻址范围1MB6什么叫指令队列?8086/8088CPU中指令队列有什么作用?其长度分别是多少?答:(1)指令队列:采用“先进先出”原则,按顺序存放预执行指令的缓冲器称为指令队列。指令队列的作用:存放EU将要执行的指令,使CPU的取指和执行指令能并行工作。指令队列的长度:8086为6个字节,

15、8088为4个字节。7.Intel8086与8088有何区别?答:8086与8088的区别有三处:外部数据总线位数不同即地址/数据分时复用引脚条数不同;8086为16位:AD15AD0。8088为8位:AD7AD0。内部指令队列缓冲器长度不同;8086有6个字节。当指令队列出现2个空字节时,BIU将取指补充。8086有4个字节。当指令队列出现1个空字节时,BIU将取指补充。外部某些控制总线定义不同。8086的28号引脚定义为M/IO(S2),8088定义为IO/M(S2)8086的34号引脚定义为BHE/S7,8088定义为SS0/(HIGH)简述8086CPU使用地址锁存信号ALE将地址A1

16、5A0与数据D15D0分开的工作原理。答:在任何一个总线周期的T1状态,ALE均为高电平,以表示当前地址/数据复用线上的输出的是地址信息,在ALE由高变低的下降沿时把地址装入地址锁存器,而在T2、T3和T4状态,ALE均为低电平,以表示当前地址/数据复用线上的输出的是数据信息,此时通过数据收发器进行传送。什么是逻辑地址?什么是物理地址?假设已知逻辑地址为BA00:A800,试求物理地址。答:逻辑地址:由段地址和偏移地址表示的存储单元地址称为逻辑地址。物理地址:CPU对存储器进行访问时实际所使用的20位地址称为物理地址。假设逻辑地址为BA00H:A800H贝9物理地址=BA00HX10H+A80

17、0H=C4800H简述堆栈指针寄存器SP的功能及堆栈的操作过程。答:(1)SP的功能:指示进栈和出栈操作时的偏移地址。(2)堆栈的操作过程:进栈时,先将SP-2,再将数据压入堆栈即先移后入出栈时,先将数据弹出堆栈,再将SP+2即先出后移第四章80X86指令系统1、指出源操作数的寻址方式MOVBX,2000H;立即数寻址MOVBX,SI;寄存器间接寻址MOVBXSI,AL;寄存器寻址MULBL;寄存器寻址INAL,DX;端口间接寻址(11)MOVCL,LENGTHVAR;立即数寻址MOVBX,2000H;直接寻址MOVBX,SI2000H;寄存器相对寻址ADDAX,BXDI80;基址变址相对寻址

18、JMPBX;段内间接寻址INCWORDPTRBP+10H;寄存器相对寻址(12)MOVBL,OFFSETVAR1;立即数寻址2、指出以下指令是否正确MOVDS,0100H;错误MOVBP,AL;错误XCHGAH,AL;正确OUT310H,AL;错误MOVBX,BX;正确MOVES:BXDI,AX;正确MOVAX,SIDI;错误MOVSS:BX+SI+100H,BX;正确ANDAX,BL;错误MOVDX,DS:BP;正确ADDSI,20H;错误MOV30H,AL;错误PUSH2000H;错误MOVSI,2000H;错误MOVSI,AL;错误ADD2000H,20H;错误MOVCS,AX;错误IN

19、CDI;错误OUTBX,AL;错误SHLBX,3;错误XCHGCX,DS;错误POPAL;错误。源操作数是立即数时,目的操作数不能时段寄存器操作数类型不一致端口直接寻址的范围应在0FFH之间存储器寻址中有效地址不能由两个变址寄存器组成操作数类型不一致用PTR说明类型目的操作数不能为立即数堆栈指令的操作数不能是立即数两个操作数不能同时为存储器操作数操作数类型不一致用PTR说明类型目的操作数不能为代码段寄存器需用PTR说明类型端口间接寻址的寄存器只能是DX寄存器移位次数大于1时应该用CL寄存器交换指令中不能出现段寄存器堆栈指令的操作数只能是字操作数(即16位操作数)3、写出存储器操作数物理地址的计

20、算表达式MOVAL,DIMOVAX,BX+SIMOV5BX+DI,ALADDAL,ES:BXSUBAX,1000HADCAX,BX+DI+2000HMOVCX,BP+SIINCBYTEPTRDI;(DS)X10H+(DI);(DS)X10H+(BX)+(SI);(DS)X10H+(BX)+(DI)+5;(ES)X10H(BX);(DS)X10H1000H;(DS)X10H(BX)(DI)2000H;(SS)X10H(BP)(SI);(DS)X10H(DI)4、假设(DS)=3000H,(BX)=2000H,(SI)=0100H,(ES)=4000H,计算以下存储器操作数的物理地址。(DS)X1

21、0H+(BX)=3000HX10H+2000H=32000H(DS)X10H+(BX)+(SI)+1000H=3000HX10H+2000H+0100H+1000H=33100H(DS)X10H+(BX)+(SI)=3000HX10H+2000H+0100H=32100H(ES)X10H(BX)=4000HX10H2000H=42000H5、假设(CS)=EOOOH,说明代码段可寻址物理存储空间的范围。J最小物理地址为:(CS)X10H+0000H=E0000H最大物理地址为:(CS)X10HFFFFH=EFFFFH代码段可寻址物理存储空间的范围是:EOOOOHEFFFFH6、设(SP)=20

22、00H,(AX)=3000H,(BX)=5000H,执行以下程序段后,(SP)=?,(AX)=?,(BX)=?PUSHAXPUSHBXPOPAX(SP)=1FFEH,(AX)=5000H,(BX)=5000H7、试比较SUBAL,09H与CMPAL,09H这两条指令的异同。假设(AL)=08H,分别执行上述两条指令后,(AL)=?,CF=?,OF=0,ZF=?相同点:两条指令都能完成(AL)09H的功能,并且都影响六个状态标志位;不同点:SUB指令将运算结果回送到AL寄存器中,而CMP指令不回送。SUBAL,09H;(AL)=FFH,CF=1,OF=0,ZF=0CMPAL,09H;(AL)=0

23、8H,CF=1,OF=0,ZF=08、分别执行以下指令,试求AL的内容及各状态标志位的状态。(1)MOVADDAL,AL,19H61H9;(AL)=7AHOF=0SF=0ZF=0AF=0PF=0CF=0(2)MOVAL,19HSUBAL,61H;(AL)=B8HOF=0SF=1ZF=0AF=0PF=1CF=1(3)MOVAL,5DHADDAL,0C6H;(AL)=23HOF=0SF=0ZF=0AF=1PF=0CF=1(4)MOVAL,7EHSUBAL,95H;(AL)=E9HOF=1SF=1ZF=0AF=0PF=0CF=19、用最少的指令,实现下述要求的功能。(1)AH的高4位清零。ANDAH

24、,0FH(2)AL的高4位去反。XORAH,0F0H(3)AL的高4位移到低4位,高4位清0。MOVCL,4SHRAL,CL(4)AL的低4位移到高4位,低4位清0。MOVCL,4SHLAL,CL10、设(BX)=6D16H,(AX)=1100H,写出以下三条指令执行后,AX和BX寄存器中的内容。MOVROLCL,06HAX,CLSHRBX,CL(AX)=4004H(BX)=01B4H11、设初值(AX)=0119H,执行以下程序段后,(AX)=?MOVCH,AHADDAL,AHDAAXCHGAL,CHADCAL,34HDAAMOVAH,ALMOVAL,CH(AX)=3520H12、指出以下程

25、序段的功能。(1)MOVCX,10LEASI,FirstLEADI,SecondREPMOVSB将First串中前10个字符传送至Second中(2)CLDLEADI,0404HMOVCX,0080HXORAX,AXREPSTOSW将起始地址为0404H开始的80H个单元置成013、设(BX)=6F30H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4154H,试求执行XCHGBX,BP+SI后,(BX)=?,(2F246H)=?(BX)=4154H(2F246H)=6F30H14、设(BX)=0400H,(DI)=003CH,执行LEABX,BX+DI

26、+0F62H后,(BX)=?(BX)=139EH15、设(DS)=COOOH,(C0010H)=0180H,(C0012H)=2000H,执行LDSSI,10H后,(SI)=?,(DS)=?(SI)=0180H,(DS)=2000H16、已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,试求单独执行以下指令后的结果。(1)MOVCL,20HBXSI;(CL)=0F6H(2)MOVBPDI,CX;(1E4F6

27、H)=5678H(3)LEABX,20HBXSI;(BX)=0056HMOVAX,2BX;(AX)=1E40H(4)LDSSI,BPDI9MOVSI,BX;(SI)=0024H(5)XCHGCX,32HBXXCHG20HBXSI,AX;(AX)=5678H,(09226H)=1234H17、假设CPU中各寄存器及RAM参数如下图,试求独立执行如下指令后,CPU及RAM相应寄存器及存储单元的内容是多少?CPURAM执行前执行后CS3000HFFFFHCX20506H06H不变DS2050H0004HBX20507H00H不变SS50A0H1000HSP20508H87H不变ES0FFFH17C6

28、HDX20509H15H不变IP0000H8094HAX2050AH37H94HDI000AH1403HBP2050BHC5H不变SI0008H1CF2050CH2FH不变1MOVDX,BX+2;DX=0006H,BX=0004H2PUSHCX;SP=0FFEH3MOVCX,BX;CX=0004H,BX=0004H4TESTAX,01;AX=8094H,CF=05MOVAL,SI;AL=87H6ADCAL,DI;AL=0CCH,CF=0DAAAL=32H7INCSISI=0009H8DECDIDI=0009H9MOVDI,AL;DI=94H10XCHGAX,DX;AX=17C6H,DX=809

29、4H11XORAH,BL;AH=84H,BL=04H12JMPDXIP=17C6H18、(DS)=2000H,(BX)=1256H,(SI)=528FH,偏移量=20A1H,(232F7H)=3280H,(264E5H)=2450H,试求执行下述指令后的结果。JMPBX;(IP)=1256HJMPTABLEBX;(IP)=3280HJMPBXSI;(IP)=2450H19、设(IP)=3D8FH,(CS)=4050H,(SP)=0F17H,当执行CALL2000H:0094H后,试指出(IP)、(CS)、(SP)、(SP)、(SP)+1)、(SP)+2)和(SP)+3)的内容。CALL指令是5

30、字节指令,下一条指令地址为4050H:3D94H所以执行后(IP)=0094H,(CS)=2000H、(SP)=0F13H(SP)=94H,(SP)1)=00H,(SP)2)=00H,(SP)3)=20H第五章汇编语言程序设计PLENTH的值为0022,它表示当前已分配单元空间;L的值为6;5.AX=000AH;BL=0AH;CL=01H;10.MOVAX,4A82HMOVDL,AHANDDL,0F0HMOVCL,4SHRDL,CLPUSHAXANDAH,0FHMOVBH,AHANDAL,0F0HMOVBL,ALMOVCL,4SHRBL,CLMOVCL,BHPOPAXANDAL,0FH11.d

31、atasegmentstring1string2yesnodataendscodesegmentassumedbIamastudent.dbIamastudent.dbmatch,0dh,0ah,$dbnomatch,0dh,0ah,$cs:code,ds:data,es:datastart:pushdssubax,axpushaxmovax,datamovds,axmoves,axleasi,string1leadi,string2movcx,string2-string1cldrepecmpsbjnzdispnomovah,9leadx,yesint21hjmpexitdispno:mov

32、ah,9leadx,noint21hexit:MOVAH,4CHINT21Hcodeends13.DATASEGMENTDB11H,22H,33H,44H,64H,87H,34,29,67H,88H,0F6HDB43H,0B7H,96H,0A3H,233,56H,23H,56H,89HCEQU20PDB20DUP(?)NDB20DUP(?)PLUSDBMINUSDBPLUS,0DH,0AH,$MINUS,0DH,0AH,$JDB2DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,MLEADI,

33、PLEABX,NMOVCX,CMOVDX,0LOOP1:LODSBTESTAL,80HJNZMINUS1;负数转移MOVDI,ALINCDIINCDH;存正数个数JMPAGAINMINUS1:MOVBX,ALINCBXINCDL;存负数个数AGAIN:DECCXJNZLOOP1MOVWORDPTRJ,DX;存结果MOVDX,OFFSETMINUSMOVAH,9INT21H;显示提示信息MOVBL,JMOVCH,2ROTATE:MOVCL,4ROLBL,CLMOVAL,BLANDAL,0FHADDAL,30HCMPAL,3AHJLPORADDAL,7POR:MOVDL,ALMOVAH,2INT2

34、1HDECCHJNZROTATE;十六进制形式输出负数个数MOVAH,2MOVDL,0DHINT21HMOVDL,0AHINT21HMOVDX,OFFSETPLUSMOVAH,9INT21HMOVDH,J+1MOVCH,2ROTATE1:MOVCL,4ROLDH,CLMOVAL,DHANDAL,0FHADDAL,30HCMPAL,3AHJLPOR1ADDAL,7POR1:MOVDL,ALMOVAH,2INT21HDECCHJNZROTATE1MOVAH,4CHINT21HCODEENDSENDSTART第六章半导体存储器2、164片片内寻址线10根,片间寻址线6根2128片片内寻址线11根,片间寻址线5根316片片内寻址线11根,片间寻址线5根42片片内寻址线14根,片间寻址线2根3、1024X8的RAM芯片,地址线11根。数据线8根6、已知:8位微机地址,总线16位,设计12KB存储系统,其中ROM占用0000H开始的8KB,RAM占用2000H开始的4KB,存储芯片分别选用INTEL2716和2114分析如下

温馨提示

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

评论

0/150

提交评论