答案第一章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=(BD)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;补码:10000001。5.设下列四组为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=00110000B(2)aORb=11111011B(3)aXORb=11001011B(4)NOTa=11000111B7.将下列算式中的十进制数表示成组合BCD码进行运算,并根据需要进行调整。(1)38+42(2)56+77(3)99+77(4)34+7解:(1)00111000+0100001001111010+011010000000(80)(2)01010110+0111011111001101+01100110000100110011(133)(3)10011001+01110111100010000+01100110000101110110(176)(4)00110111+0000011100111011+011001000001(41)8.将下列字符串表示成相应的ASCII码(用十六进制数表示)。(1)102(2)ABC(3)ASCII(4)abc解:(1)313032H(2)414243H(3)4153434949H(4)616263H9.已知[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.请将十进制数7.5表示成二进制浮点规格化数(阶符1位,阶码2位,数符1位,尾数4位)。解:十进制数7.5用二进制表示为:111.1B111.1B=0.1111×2+3浮点规格化数表示成:01101111。第二章1.8086/8088微处理器从逻辑结构上可以分成哪两部分?试说明每一部分的组成与功能。答:8086/8088微处理器从逻辑结构上可以分成执行单元(EU)和总线接口单元(BIU)。执行部件(EU)包含一个16位的算术逻辑单元(ALU)、一个16位反映CPU状态和控制标志的状态标志寄存器(FLAG)、一组8个16位通用寄存器组、数据暂存寄存器和EU的控制电路。总线接口部件(BIU)包含一组段寄存器(CS,SS,DS和ES)、一个指令指针寄存器(IP)、4或6个字节的指令队列、地址形成器件和总线控制逻辑。EU的功能是负责指令的执行;BIU的功能是根据EU的请求,完成CPU与存储器或I/O接口间的数据传送。2.写出8086/8088CPU中14个16位寄存器的名称。答:8086/8088CPU中14个16位寄存器的名称如下:AX:累加器。BX:基址寄存器。CX:计数寄存器。DX:数据寄存器。SP:堆栈指针寄存器。BP:基地址指针寄存器。SI:源变址寄存器。DI:目的变址寄存器。CS:代码段寄存器。DS:数据段寄存器。SS:堆栈段寄存器。ES:附加段寄存器。IP:指令指针寄存器。FLAG:标志寄存器。3.写出8086/8088CPU标志寄存器中的6个状态标志位和3个控制标志位的定义。答:6个状态标志位的定义如下: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。3个控制标志位的定义如下:TF:陷阱标志;当TF=1时,CPU将进入单步执行工作方式;IF:中断标志;当IF=1时允许CPU响应可屏蔽中断;当IF=0时禁止CPU响应可屏蔽中断;DF:方向标志;当DF=0时,串操作指令时地址朝增加方向;当DF=1时,串操作指令时地址朝减少方向。4.在8086/8088CPU中,十六进制补码数8070H与9E85H进行加法运算,请写出运算结束后SF、OF、CF、AF、ZF及PF标志位的值?解:8070H1000000001110000+9E85H1001111010000101128F5H+10010100011110101从运算结果可以看出:SF=0;OF=1;AF=0;CF=1;ZF=0;PF=1。5.写出8086/8088CPU引脚中ALE、NMI、INTR、INTA及RDT/的含义及输入/输出方向。答:ALE:地址锁存输出信号。NMI:非屏蔽中断请求输入信号。INTR:可屏蔽中断请求输入信号。INTA:中断响应输出信号。RDT/:数据传送方向输出信号。6.8088CPU中的RESET、READY信号的作用分别是什么?答:RESET:CPU复位输入信号,高电平有效。当此输入线有效并维持至少4个时钟周期时完成CPU内部复位操作。复位后CPU内的寄存器及引脚处于初始状态。READY:准备就绪输入信号,高电平有效。用于协调CPU与存储器或I/O端口之间的数据传送。当CPU对存储器或I/O进行操作时,在T3周期开始采样READY信号。若其为低电平,表明被访问的存储器或I/O还未准备就绪;若其为高电平,表明被访问的存储器或I/O已准备就绪。7.写出段基址、偏移地址、逻辑地址和物理地址的含义,同时写出它们之间的联系。答:段基址:段首地址的高16位地址码,常存于相应的段寄存器中;偏移地址:段内的相对地址,也称有效地址;逻辑地址:由段基址与段内偏移地址组合表示存储单元地址;物理地址:用20位二进制编号表示存储单元地址;物理地址=段基址×16+段内偏移地址。8.试填写物理地址。(1)CS=1200H,IP=2500H,物理地址为14500H。(2)DS=39A0H,BX=4700H,物理地址为3E100H。(3)ES=6200H,DI=2000H,物理地址为64000H。(4)SS=8200H,BP=1050H,物理地址为83050H。9.请画出8088CPU一个基本的存储器写总线周期时序图。答:一个总线周期CLKT1T2T3T4A19~A16/S6~S3地址输出状态输出A15~A8地址输出AD7~AD0地址输出数据输出ALEIO/MWRDT/RDEN10.请写出时钟周期、总线周期与指令周期的含义。答:时钟周期是CPU的基本时间计量单位,即计算机主频的倒数。总线周期是指CPU通过总线对存储器或I/O端口进行一次访问(读/写操作)所需的时间;一个总线周期至少包含4个时钟周期,即T1、T2、T3、T4。指令周期是指计算机完成一条指令的执行所需要的时间。11.在总线周期的T1、T2、T3和T4状态,CPU分别执行什么动作?什么情况下需要插入等待状态TW?TW插入的位置?答:在T1状态,BIU把要访问的存储器单元或I/O端口的地址输出到总线。在T2状态,地址/数据复用总线停止输出地址信号。若是读周期,T2中地址/数据复用总线处于高阻状态,CPU有足够的时间使其从输出方式变为输入方式;若为写周期,CPU不必转变输出方式。在T3~T4状态,CPU与存储器或I/O接口进行数据传送。CPU若与慢速的存储器或I/O端口之间的数据传送,READY信号在T3状态时仍为低电平,则在T3之后插入等待状态TW,加入TW的个数由外设的速度与CPU速度匹配决定。12.8088CPU工作在最小模式下,请回答以下问题:(1)CPU访问存储器时,需要哪些信号?(2)CPU访问I/O接口时,需要哪些信号?(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻状态?答:(1)利用A15~A8,AD7~AD0,ALE,WR,RD,RDT/,DEN,MIO/。(2)利用A15~A8,AD7~AD0,ALE,WR,RD,RDT/,DEN,MIO/。(3)当HOLD有效并得到响应时,CPU中呈高阻状态的信号有:A15~A8,AD7~AD0,ALE,WR,RD,RDT/,DEN,MIO/。第三章1.按照题目中提出的要求,写出能达到要求的一条(或几条)汇编形式的指令。(1)将立即数1234H送入寄存器BX;(2)将立即数1234H送入段寄存器DS;(3)将变址寄存器DI的内容送入数据段中2000H的存储单元;(4)把数据段中2000H存储单元的内容送段寄存器ES;(5)将立即数0ABH与AL相加,结果送回AL;(6)把BX与CX寄存器内容相加,结果送入BX;(7)寄存器BX中的低4位内容保持不变,其它位按位取反,结果仍在BX中;(8)实现AX与8位数-128的乘积运算;(9)实现CX中高、低8位内容的交换;(10)将DX中D0、D5、D8位置1,其余位保持不变。解:(1)MOVBX,1234H(2)MOVAX,1234HMOVDS,AX(3)MOV[2000H],DI(4)MOVES,[2000H](5)ADDAL,0ABH(6)ADDBX,CX(7)XORBX,0FFF0H(8)MOVBL,80HIMULBL(9)XCHGCH,CL(10)ORDX,0121H2.顺序执行下列指令,填写指令后的空格。MOVAX,2000H;AH=20HMOVDS,AX;AL=00H;DS=2000HMOVBX,2030H;BH=20H;BL=30HMOVSI,BX;SI=2030HPUSHBXPOPCX;BX=2030H;CX=2030HXCHGAX,SI;AX=2030H;SI=2000HADDAX,0F43H;AX=2F73H;CF=0CWD;AX=2F73H;DX=0000HSHLA