第一章习题解答(P37)2、设机器字长为6位,写出下列各数的原码、补码、反码和移码。101011111110000-10101-11111-10000解:①[10101]原=[10101]补=[10101]反=010101B[10101]移=2n-1-1+010101=11111+10101=110100B②[-10101]原=110101B[-10101]反=101010B[-10101]补=101011B[-10101]移=11111-10101=001010B③[11111]原=[11111]补=[11111]反=011111B[11111]移=11111+11111=111110B④[-11111]原=111111B[-11111]反=100000B[-11111]补=100001B[-11111]移=11111-11111=000000B⑤[10000]原=[10000]补=[10000]反=010000B[10000]移=11111+10000=101111B⑥[-10000]原=110000B[-10000]反=101111B[-10000]补=110000B[-10000]移=11111-10000=001111B3、利用补码进行加减法运算比用原码进行运算有何优越性?答:利用补码进行加减法运算比用原码进行运算的优越性主要表现在只用一套加法器电路就可以进行加减法运算,简化了电路,降低了运算器的成本。5、设机器字长为8位,最高位为符号位,试对下列各算式进行二进制补码运算。(1)16+6=?解:∵[16]补=10H[6]补=06H∴[16+6]补=[16]补+[6]补=10H+06H=16H(2)8+18=?解:∵[8]补=08H[18]补=12H∴[8+18]补=[8]补+[18]补=08H+12H=1AH(3)9+(-7)=?解:∵[9]补=09H[-7]补=F9H∴[9+(-7)]补=[9]补+[-7]补=09H+F9H=02H(4)-25+6=?解:∵[-25]补=E7H[6]补=06H∴[-25+6]补=[-25]补+[6]补=E7H+06H=EDH(5)8-18=?解:∵[8]补=08H[-18]补=EEH∴[8-18]补=[8]补+[-18]补=08H+EEH=F6H(6)9-(-7)=?解:∵[9]补=09H[-(-7)]补=07H∴[9-(-7)]补=[9]补+[-(-7)]补=09H+07H=10H(7)16-6=?解:∵[16]补=10H[-6]补=FAH∴[16-6]补=[16]补+[-6]补=10H+FAH=0AH(8)-25-6=?解:∵[-25]补=E7H[-6]补=FAH∴[-25-6]补=[-25]补+[-6]补=E7H+FAH=E1H6、设机器字长为8位,最高位为符号位,试用“双高位”法判别下述二进制运算有没有溢出产生。若有,是正溢出还是负溢出?(1)43+8=51解:[43]补=2BH[8]补=08H00101011+0000100000110011B因为D7CY○+D6CY=0○+0=0,所以运算结果没有溢出。(2)-52+7=-45解:[-52]补=CCH[7]补=07H11001100+0000011111010011B因为D7CY○+D6CY=0○+0=0,所以运算结果没有溢出。(3)50+84=解:[50]补=32H[84]补=54H00110010+0101010010000110B因为D7CY○+D6CY=0○+1=1,所以运算结果产生了正溢出。(4)72-8=64解:[72]补=48H[-8]补=F8H01001000+1111100001000000B因为D7CY○+D6CY=1○+1=0,所以运算结果没有溢出。(5)-33+(-37)=-70解:[-33]补=DFH[-37]补=DBH11011111+1101101110111010B因为D7CY○+D6CY=1○+1=0,所以运算结果没有溢出。(6)-90+(-70)=解:[-90]补=A6H[-70]补=BAH10100110+1011101001100000B因为D7CY○+D6CY=1○+0=1,所以运算结果产生负溢出。7、何谓字符串及位串?它们之间有何不同?答:“字符串”是以字节/字/双字的相邻序列;8、已知位bi及bj在位串中的地址(位偏移量)分别为92和-88,试求它们各自在位串中的字节地址及其在所在字节中的位置。解:bi的字节索引为92÷8取整数商:11;bi的位余数为92mod8:4答:bi位在m+11字节的D4位。解:bj的字节索引为-88÷8取整:11;5bj的位余数为-88mod8:0答:bj位在m-11字节的D0位。9、将下列十进制数变为8421BCD码:(1)8069答:8069对应的8421BCD码为:1000000001101001(2)5324答:5324对应的8421BCD码为:010100110010010010、将下列8421BCD码表示成十进制数和二进制数:(1)01111001B答:(01111001)8421BCD=79=1001111B(2)10000011B答:(10000011)8421BCD=83=1010011B11、写出下列各数的ASCII代码:(1)51答:51的ASCII代码为:35H31H(2)7F答:7F的ASCII代码为:37H46H(3)AB答:AB的ASCII代码为:41H42H(4)C6答:C6的ASCII代码为:43H36H第二章习题解答(P69)1、8086/8088CPU中BIU部件和EU部件各由哪些部分组成?各自的功能是什么?追踪指令地址的寄存器是什么?答:8086/8088CPU中BIU部件由4个段寄存器(CS,DS,ES和SS)、1个指令指针寄存器(IP)、1个20位地址加法器、1个指令队列缓冲器(8086为6字节,8088为4字节)和总线控制电路等组成。主要功能一是从内存中取指令代码送入指令队列缓冲器中;二是响应EU的总线请求,负责与内存或输入/输出接口之间的数据传送;三是在执行转移指令时,BIU使指令队列缓冲器复位,从指定的新地址取指令,并立即传给EU单元执行。EU部件由1个16位ALU、寄存器组(4个通用寄存器AX、BX、CX和DX,2个指针寄存器BP和SP,2个变址寄存器DI和SI)、1个标志寄存器FLAGS和执行控制电路(指令译码和时序产生电路等)等组成。其功能一是从指令队列缓冲器中依次取出指令代码、译码并执行;二是执行含存储器或I/O口的指令时,形成存储器操作数的段内偏移地址或I/O口地址送BIU;三是执行转移、调用、中断指令时通知BIU复位指令队列缓冲器,立即从新地址开始取指令代码。在8086/8088CPU中,追踪指令地址的寄存器是IP(指令指针寄存器),由CS:IP指出要执行指令的地址。2、简述堆栈指示器SP的功能及堆栈的操作过程。答:8X86系列微处理器的堆栈如下图所示:①堆栈是由内存中按照“先进后出”原则组织起来的一片连续的存储器单元组成;②SP作为堆栈指针,始终指向“栈顶”;③堆栈操作进栈操作(PUSH)先把SP-2,再把源操作数存入SP所指的字存储器单元;出栈操作(POP)先把SP所指字单元的内容取到目的操作数,再将SP+2。3、8086/8088CPU有哪几个状态标志?哪几个控制标志?各标志的含义和功能是什么?答:①8086/8088CPU有6个状态标志,各标志的含义是:CF:进位/借位标志,指示加/减法运算中最高位的进/借位状态,有进/借位时CF为1,反之为0;PF:奇偶标志,指示算术/逻辑运算结果低8位中1的个数是奇/偶数,结果中有偶数个1时,PF为1,反之为0;AF:半进位标志,指示加/减法运算中D3位向D4位的进/借位状态,有进/借位时AF为1,反之为0;ZF:0标志,指示算术/逻辑运算结果使ALU中是否为全0,ALU中为全0时ZF为1,反之为0;SF:符号标志,指示算术/逻辑运算结果最高位的状态,最高位为1时SF为1,反之为0;OF:溢出标志,指示带符号算术运算结果是否超出其表示范围,用双高位法判断,有溢出时OF为1,反之为0;注意:CF,ZF,SF和OF与操作数的位数有关,80386支持8位,16位和32位运算。PF和AF与操作数的位数无关。②8086/8088CPU有3个控制标志,各标志的含义是:TF:单步标志,用来控制CPU执行指令的方式,当TF=1时,每执行一条指令便产生一次单步中断,当TF=0时,连续执行指令;DF:方向标志,用来控制串操作指令的步进方向,当DF=1时,串操作指令从高地址向低地址方向进行,当DF=0时,串操作指令从低地址向高地址方向进行;IF:可屏蔽中断允许标志,当IF=1时,允许响应可屏蔽中断请求,反之则禁止响应。4、8086/8088CPU的存储器组织为什么要采用分段结构?逻辑地址和物理地址的关系是什么?若已知逻辑地址为B100H:A300H,试求物理地址。答:8086/8088CPU的存储器组织采用分段结构有以下优点:①能有效利用8086/8088CPU的个16位寄存器和1个20位地址加法方便的构成20位地址,使8086/8088CPU的寻址能力达到1MB;②能方便实现不同信息的分类存储(程序代码、数据和堆栈等)和共享;③有利于模块化程序、多道程序和多用户程序的设计。逻辑地址是编程者使用的地址,不是程序代码或数据在计算机中的实际地址,而物理地址是系统中每个存储器单元或I/O端口所在的地址,由处理器的地址线状态确定。逻辑地址必须转换成物理地址才能使用,在8086/8088系统中,其转换方法是:物理地址=段地址×10H+偏移地址一个逻辑地址只对应一个物理地址。例如本题中:物理地址=B100H×10H+A300H=BB300H而一个物理地址可以对应多个逻辑地址,例如本题中物理地址BB300H,可以对应逻辑地址:B100H:A300HB000H:B300HBB00H:0300HBB30H:0000H…这种对应关系有利于存储器单元的共享,但要防止冲突。7、试判断下列运算执行之后,OF、CF、ZF、SF、PF和AF的状态:⑴A400H+7100H解:1010010000000000+01110001000000000001010100000000运算后各标志的状态为:OF=0,CF=1,ZF=0,SF=0,PF=1,AF=0⑵A323H-8196H解:1010001100100011-10000001100101100010000110001101运算后各标志的状态为:OF=0,CF=0,ZF=0,SF=0,PF=1,AF=1⑶46H-59H解:01000110-0101100111101101运算后各标志的状态为:OF=0,CF=1,ZF=0,SF=1,PF=1,AF=1⑷7896H-3528H解:0111100010010110-00110101001010000100001101101110运算后各标志的状态为:OF=0,CF=0,ZF=0,SF=0,PF=0,AF=110若把该题改为“+”运算,即:7896H+3528H,则运算结果OF=1解:0111100010010110+00110101001010001010110110111110运算后各标志的状态为:OF=1,CF=0,ZF=0,SF=1,PF=1,AF=010、80386CPU有哪几种工作方式?各有何特点?答:80386CPU有3种工作方式。各方式的主要特点是:①在实地址方式,80386只能寻址1MB物理地址空间,相当于一个高速8086CPU;②在虚地址保护方式,80386可寻址4GB物理地址空间和64TB虚地址空间,对内存采用分段和分页管理方式,更好地兼顾了程序设计的逻辑性和内存管理的高效灵活两者的矛盾。③在虚拟8086方式,8086的程序可以在保护方式的基础上作为任务加以执行,实现多个用户程序同时运行。11、80386寄存器集由哪些寄存器组成?它们的功能和特点是什么?答:80