第一章参考答案1.将下列十进制数转换成二进制数:(1)49(2)49.75(3)100(4)100.8125解:(1)(49)10=(110001)2(2)(49.75)10=(110001.11)2(3)(100)10=(1100100)2(4)(100.8125)10=(1100100.1101)22.将下列十六进制数转换成二进制数和十进制数:(1)FAH(2)78A2H(3)FFFFH(4)3CH解:(1)(FA)16=(11111010)2=(250)10(2)(78A2)16=(111100010100010)2=(30882)10(3)(FFFF)16=(1111111111111111)2=(65535)10(4)(3C)16=(111100)2=(60)103.将下列二进制数转换成十六进制数和八进制数:(1)101101.11(2)1111111(3)1101001011.01(4)10111101解:(1)(101101.11)2=(2D.C)16=(55.6)8(2)(1111111)2=(7F)16=(177)8(3)(1101001011.01)2=(34B.4)16=(1513.2)8(4)(10111101)2=(BB)16=(275)84.设机器字长为8位,写出下列各二进制数的原码、反码和补码:(1)+1010101(2)-1000000(3)+1111111(4)-1111111解:(1)原码:01010101反码:01010101补码:01010101(2)原码:11000000反码:10111111补码:11000000(3)原码:01111111反码:01111111补码:01111111(4)原码:11111111反码:10000000补码:100000015.设下列四组为8位二进制补码表示的十六进制数,计算a+b和a-b,并判断其结果是否溢出:(1)a=0F6H,b=0D5H(2)a=0B7H,b=0C7H(3)a=37H,b=67H(4)a=73H,b=7BH解:(1)a+b=CBH没有发生溢出a-b=21H没有发生溢出(2)a+b=7EH发生溢出a-b=F0H没有发生溢出(3)a+b=9EH没有发生溢出a-b=D0H没有发生溢出(4)a+b=EEH发生溢出a-b=F8H没有发生溢出6.已知a=00111000B,b=11110011B,计算下列逻辑运算:(1)aANDb(2)aORb(3)aXORb(4)NOTa解:(1)aANDb=00110000(2)aORb=11111011(3)aXORb=11001011(4)NOTa=110001117.将下列算式中的十进制数表示成组合BCD码进行运算,并根据需要进行调整。(1)38+42(2)56+77(3)99+77(4)34+7解:(1)00111000+0100001001111010+011010000000(2)01010110+0111011111001101+011011010011+0110000100110011(3)10011001+01110111100010000+01100110000101110110(4)00110111+0000011100111011+0110010000018.将下列字符串表示成相应的ASCII码(用十六进制数表示):(1)102(2)ABC(3)ASCII(4)abc解:(1)31H30H32H(2)41H42H43H(3)41H53H43H49H49H(4)61H62H63H9.已知[X]原=10101100B,计算[(1/2)X]补及[(-1/2)X]补的值。解:∵[X]原=10101100B∴[(1/2)X]原=10010110B[(-1/2)X]原=00010110B∴[(1/2)X]补=11101010B[(-1/2)X]补=00010110B10.若X=-63,Y=+127,则在[X-Y]补运算后,进位标志CF、符号标志SF及溢出标志OF应分别是什么?(设机器字长为8)解:[X]补=11000001[-Y]补=10000001[X-Y]补=[X]补+[-Y]补=101000010∴CF=1SF=0OF=011.若对下列二进制位串进行偶校验,写出校验位的值。(1)1000001(2)1111111(3)1010110(4)1010100解:(1)0(2)1(3)0(4)1第二章参考答案1.说明8086/8088CPU中,EU和BIU的功能。答:EU的功能是负责指令的执行;BIU的功能是根据EU的请求,完成CPU与存储器或I/O接口间的数据传送。2.说明8086/8088CPU中,标志寄存器中各标志位的功能。答:CF:进位标志;当最高位有进位或借位时,CF=1;否则CF=0;PF:奇偶标志;当运算结果中低8位中“1”的个数为偶数时,PF=1;否则PF=0;AF:辅助进行标志;当D3向D4有进位或借位时,AF=1;否则AF=0;ZF:零标志;运算结果每位都为0时,ZF=1;否则ZF=0;SF:符号标志;运算结果的最高位为1时,SF=1;否则SF=0;OF:溢出标志;两个符号数进行运算产生溢出时,OF=1;否则OF=0;TF:陷阱标志;当TF=1时,CPU将进入单步执行工作方式;IF:中断标志;当IF=1时允许CPU响应可屏蔽中断;当IF=0时禁止CPU响应可屏蔽中断;DF:方向标志;当DF=0时,串操作指令时地址朝增加方向;当DF=1时,串操作指令时地址朝减少方向。3.8086/8088CPU的最小模式和最大模式工作主要区别是什么?答:最小模式与最大模式的主切区别在于控制总线的产生方式不同。最小工作模式的控制总线由CPU的引脚直接给出;最大工作模式的控制总线由总线控制器给出。4.8086CPU与8088CPU的引出线有什么差别?答:1)外部数据总线不同:8086CPU标注AD0~AD15,而8088CPU标注AD0~AD7,A8~A152)8086中设有BHE引脚;而8088中设有SSO引脚。3)8086中设有M/IO引脚;而8088中设有IO/M。5.若8086/8088CPU对符号数8070H和FF85H进行加法运算,试问运算后SF、OF、AF、CF、ZF、PF标志的值各是多少?解:8070H1000000001110000+FF85H111111111000010117FF5H+10111111111110101从运算结果可以看出:SF=0;OF=1;AF=0;CF=1;ZF=0;PF=1。6.8086/8088微处理器内部有哪些寄存器?其主要作用是什么?答:8086/8088微处理器内部有14个16位寄存器,它们的名称及作用如下:AX:累加器。BX:基址寄存器。CX:计数器。DX:数据寄存器。SP:堆栈指针寄存器。BP:地址指针寄存器。SI:源地址寄存器。DI:目的地址寄存器。CS:代码段寄存器。DS:数据段寄存器。SS:堆栈段寄存器。ES:附加段寄存器。IP:指令指针寄存器。FLAG:标志寄存器。7.什么是逻辑地址?什么是物理地址?它们之间的关系如何?答:逻辑地址:由段基址与段内偏移地址组成的表示存储单元地址。物理地址:用20位二进制编号表示存储单元地址。物理地址=段基址×16+段内偏移地址。8.8088CPU的RESET信号、READY信号的作用?答:RESET:CPU复位输入信号,当此输入线有效并维持4个时钟周期时完成CPU内部复位。READY:准备就绪输入信号,用于协调CPU与存储器或I/O之间的数据传送。9.试画出一个基本的存贮器写总线周期时序图。答:10.8088CPU工作在最小模式下,一个总线周期CLKT1T2T3T4A19/S6~A16/S3地址输出状态输出A15~A8地址输出AD7~AD0地址输出数据输出ALEIO/MWRDT/RDEN(1)当CPU访问存储器时,要利用哪些信号?(2)当CPU访问外设接口时,要利用哪些信号?(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻状态?答:(1)利用AD0~AD7,A8~A15,ALE,WR,RD,DT/R,DEN,M/IO。(2)利用AD0~AD7,A8~A15,ALE,WR,RD,DT/R,DEN,M/IO。(3)当HOLD有效并得到响应时,CPU中呈高阻状态的信号有:AD0~AD7,A8~A15,ALE,WR,RD,DT/R,DEN,M/IO。11.8086/8088CPU在存储器写周期中,有效数据开始的时刻是总线周期的哪个T?在存储器读周期中,有效数据开始的时刻是总线周期的哪个T?答:写存储器操作时,有效数据开始于T2;读存储器操作时,有效数据开始于T3。12.8086/8088CPU与存储器(或外设)同步以及与协处理器同步的引脚信号依次是什么?答:同步的引脚信号是:READY,HOLD。13.以Pentium微处理器为CPU的奔腾机采用的系统总线和局部总线分别是什么?答:系统总线:局部总线:第三章参考答案1.按照题目中提出的要求,写出能达到要求的一条(或几条)汇编形式的指令:⑴将一个立即数送入寄存器BX;⑵将一个立即数送入段寄存器DS;⑶将变址寄存器DI的内容送入一个存储单元中;⑷从存储单元中取一个数送到段寄存器ES中;⑸将立即数0ABH与AL相加,结果送回AL中;⑹把BX与CX寄存器内容相加,结果送入BX;⑺用寄存器间接寻址方式,实现一个立即数与存储单元内容相加,结果放回存储器。解:(1)MOVBX,1234H(2)MOVAX,1234HMOVDS,AX(3)MOV[BX],DI(4)MOVES,[BX](5)ADDAL,0ABH(6)ADDBX,CX(7)MOVAX,[BX]ADDAX,1234HMOV[BX],AX2.执行下面程序,完成指令后的填空:MOVAX,2000H;AH=20HMOVDS,AX;AL=00HDS=2000HMOVSS,AX;SS=2000HAX=2000HMOVBX,2030H;BH=20HBL=30HMOVSI,BX;SI=2030HMOVDI,3040H;DI=3040HMOVSI,DI;SI=3040HMOVSP,50FFH;SP=50FFHMOVDX,SP;DH=50HDL=FFHMOVCL,25;CL=19HMOVBL,CL;CL=19HBL=19HMOVAH,0F0H;AH=F0HMOVCH,AH;CH=F0HMOVBYTEPTR[DI],64;(DI)=40HMOVWORDPTR[SI],256;(SI)=00H(SI+1)=01HMOVDL,[SI+1];DL=01HMOVDH,1+[SI];DH=00HMOVAL,1[SI];AL=01HMOVWORDPTR[BX][SI],34;(BX+SI)=22H(BX+SI+1)=00HMOV[BX+SI+4],BL;(BX+SI+4)=19HMOVBP,2[BX+DI];BP=00HMOV[BP],AL;(BP)=01HMOVAX,[BP][DI];AX=0100HMOVBL,AL;BL=00HMOVES,BX;ES=2000HPUSHBX;SP=50FDH(SP,SP+1)=2000HPUSHDI;SP=50FBH(SP,SP+1)=F019HPOPCX;SP=50FDHCX=3040HPOPDX;SP=50FFHDX=2000HXCHGAX,BP;AX=0000HBP=0100HXCHGDH,BL;DH=00HBL=20HLAHF;FLAG=0002HAH=02HSAHF;FLAG=0002HAH=02HPUSHF;SP=50FDH(SP,SP+1)=0002HPOPF;SP=50FFHFLAG=0002H3.设DS=2000H,ES=2100H,SS=1500H,SI=00A0H。BX=0100H,BP=0010H,数据段中变量名VAL的偏移地址值是0050H,指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?⑴MOVAX,0ABH⑵MOVAX,BX⑶MOVAX,[10