习题一解答: 
1.31[0.0000]=0.0000  [0.0000]=0.0000    [0.0000]=0.0000
  2[0.1001]=0.1001  [0.1001]=0.1001    [0.1001]=0.1001
  3[-1001]=11001    [-1001]=10110    [-1001]=10111
1.4[N]=1.0101  [N]=1.1010  [N]=1.0110  N=-0.1010
1.5(1)原码运算:比较可知,正数较大,用正数减负数,结果为正
01010011-00110011=[01010011]-[00110011]=00100000
      反码运算:01010011-00110011=[01010011]+[-00110011]
                                =001010011  + 111001100=000011111
      补码运算:01010011-00110011=[01010011]+[-00110011]
=001010011  + 111001101=000100000
  (2)原码运算:比较可知,负数较大,用负数减正数,结果为负
0.100100-0.110010=[0.110010]-[0.100100]=-0.001110
      反码运算:0.100100-0.110010=[0.100100]+[-0.110010]
                                = 0.100100  +  1.001101=1.110001
      补码运算:0.100100-0.110010=[0.100100]+[-0.110010]
                                = 0.100100  +  1.001110=1.110010
1.6(1) (11011011)2=(1×27+1×26+1×24+1×23+1×21+1×20)10=(219)10=(001000011001)BCD
  (2) (456)10=(010001010110)BCD
  (3) (174)8=(1×82+7×81+4×80)10=(124)10=(000100100100)BCD
  (4) (2DA)16=(2×162+13×161+10×160)10 =(730)10=(011100110000)BCD
1.7(1)9876H看成有符号数时,默认为负数的补码,转换为十进制数是:-26506
      9876H=1001100001110110B 为负数的补码,对其求补得到正数的补码,即
[1001100001110110B]=0110011110001010B
=(1×214+1×213+1×210+1×29+1×28+1×27+1×23+1×21)10
=26506  所以原负数为-26506
  (2)9876H看成无符号数时,转换为十进制数是:39030
9876H=1001100001110110B=(1×215+1×212+1×211+1×26+1×25+1×24+1×22+1×21)10
=39030 
1.8198的压缩BCD码为:10011000B
  298的非压缩BCD码为:0000100100001000B
1.9(1)[S1+S2]=[S1]+[S2]= 00010110+00100001=00110111,无溢出
      [S1-S2]=[S1]+[-S2]=00010110+11011111=11110101,无溢出
  (2)[S1+S2]=[S1]+[S2]= 00010110+11011111=11110101,无溢出
[S1-S2]=[S1]+[-S2]=00010110+00100001=00110111,无溢出
(3)[S1+S2]=[S1]+[S2]= 01100100+00011110=10000010,有溢出
[S1-S2]=[S1]+[-S2]=01100100+11100010=01000110,无溢出
(4)[S1+S2]=[S1]+[S2]= 10011100+11100010=01111110,有溢出
[S1-S2]=[S1]+[-S2]=10011100+00011110=10111010,无溢出

习题二解答:
2.1答:8086有哪些寄存器组?各有什么用途?
  通用寄存器AX、BX、CX、DX
它既可用作16位寄存器,又可将它拆成高、低8位,分别作为两个独立的8位寄存器使用。AX称累加器。常用于存放算术逻辑运算中的操作数,所有I/O指令都使用累加器与外设接口传送数据;BX称基址寄存器。常用来存放访问内存时的基地址或用作间接寻址时的地址寄存器。CX称计数寄存器。在循环和串操作指令中用作计数器,指令执行后CX寄存器中的内容会自动改变。DX称数据寄存器。在I/O指令中用来存放端口的地址,在乘除指令中用作辅助寄存器。
  4个专用寄存器
SP堆栈指针寄存器。它在堆栈中存放栈顶偏移指针,;BP基址指针寄存器。一般也用来存放访问内存时的基地址;SI源变址寄存器,DI目的变址寄存器。它们常常用在变址寻址方式中。
  4个段寄存器
CS代码段寄存器。存放当前程序所在段的段基址;DS数据段寄存器。存放当前程序所用数
据段的段基址;SS堆栈段寄存器。存放当前程序所用堆栈段的段基址,ES附加段寄存器。存放当前程序所用辅助数据段的段基址。
④  指令指针寄存器IP
16位的指令指针寄存器IP用于存放下一条执行指令的偏移地址。
⑤标志寄存器FR
它是16位寄存器,但只使用其中的9位,这9位包括6个状态标志位和3个控制标志位。状态标志记录了前面算术逻辑运算结果的一些特征;控制标志是用户自己通过指令设置的,设置后将对其后的操作产生控制作用。
2.2答:8086流水线技术是利用8086内部指令队列,使8086/8088的执行部件和总线接口部件并行工作。其工作过程如下:当8086的指令队列中有两个空字节,或者8088的指令队列中有一个空字节,总线接口部件就自动执行一次指令周期,从内存中取出后续的指令代码放入队列中。当执行部件需要数据时,总线接口部件根据执行部件给出的地址,从指定的内存单元或外设中取出数据供执行部件使用。当运算结束时,总线接口部件将运算结果送入指定
的内存单元或外设。当指令队列空时,执行部件等待,直到有指令为止。若总线接口部件正在取指令,执行部件此时正好发出访问总线的请求,则必须等总线接口部件取指令完毕后,该请求才能得到响应。一般情况下,程序按顺序执行,但当遇到跳转指令时,总线接口部件就使指令队列复位,从新地址取出指令,并立即传给执行部件去执行。
所以,8086流水线技术减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度,也降低了对存储器存取速度的要求。
2.3答:为了尽可能使8086/8088CPU适应各种使用场合,8086/8088CPU通常有两种工作模式:最大工作模式和最小工作模式。
最小工作模式,就是在系统中只有8086或者8088一个微处理器。在这种系统中,所有的控制信号直接由8086或8088产生,因此,系统中的总线控制逻辑电路被减到最少。
最大工作模式,是相对最小工作模式而言。在此工作模式系统中,一般包含两个或两个以上微处理器,但是主处理器只有一个,其他的处理器均为协处理器,协助主处理器工作。
2.4答:逻辑地址是由段基址和偏移地址两部分构成,通常由编程人员在指令中使用。8086
系统中任何一个存储单元对应20位的物理地址,都是由逻辑地址转换得来的。
8086存储器中的物理地址是由内部总线接口部件BIU——地址加法器产生。由地址加法器把16位段寄存器的内容转换为20位物理地址,即段基址左移4位后,再加上有效偏移量地址。
物理地址=CS×16+IP=40000H+2200H=42200H
2.5答:8086CPU为了能够对存储器进行字节和字的访问,在技术上将1M字节的存储器空间分成两个512K字节(219)的存储体。一个存储体中包含偶数地址,该存储体被称为偶存储体;另一个存储体中包含奇数地址,该存储体被称为奇存储体,两个存储体之间采用交叉编址方式,然后通过A和BHE组合就可以确定对哪一组存储体进行访问,是对字节还是对字进行访问。
2.6答:在存储器中,对要存放的字,其低位字节可以从奇数地址开始存放,也可以从偶数地址中开始存放;如果从奇数地址开始存放称为非规则存放,按非规则存放的字称为字不对准存放。从偶数地址中开始存放称为规则存放,按规则存放的字称为字对准存放。
使用字对准存放要在一个总线周期完成,用字不对准存放则需要两个总线周期才能完成。所
以为了加快程序运行速度,编程时应尽可能使用字对准存放。
习题三解答:
3.6答:(1)MOV  CX, BX
(2)MOV  AX, 1234H
(3)MOV  AX, WORD PTR [20H]
(4)MOV  BYTE PTR [BX], 20H
3.7答:(1EA=3000H
(2)EA=1200H
(3)EA=3300H
(4)EA=4200H
(5)EA=4500H
3.8答:(1)立即数寻址
(2)直接寻址
(3)寄存器间接寻址
(4)基址变址寻址
(5)相对基址变址寻址
(6)寄存器寻址
3.9答:(1)段内间接寻址
      (2)段内间接寻址
      (3)段间间接寻址
3.10答:(1直接寻址          PA=10200H
(2)寄存间接寻址      PA=10010H
(3)跨段寄存器间接寻址 PA=15010H
(4)跨段寄存器间接寻址 PA=20010H
(5)寄存器间接寻址    PA=200A0H
(6)寄存器相对址寻址  PA=10110H
(7)基址变址寻址      PA=10110H
(8)相对基址变址寻址  PA=10210H
(9)寄存器间接寻址    PA=10100H
3.12答:补码的最小负数(1AX=0100H
2AX=1020H
3AX=1020H
4AX=5030H
5AX=2010H
6AX=2010H
7AX=1020H
3.13答:(1SI=0320H
  2BP=1320H
  3DI=0310H
4X=0FFF0H
3.11答:(1MOV  AL, 1234H     
(2)MOV  CS, AX         
(3)MOV  [1000], 1000H   
(4)MOV  BYTE PTR [BX],1000H
(5)PUSH  AL   
(6)IN  AX, [BX]     
(7)SHL  AX, 5   
(8)XCHG  DS, AX
(9)XCHG  [BX], [SI]
(10)DEC  [SI]
(11)NEG  1234H
(12)MUL  05H
(13)DIV  AX, BX
(14)LEA  AX, 0100H
(15)AND  [BX], [SI]
类型不匹配
代码段寄存器不能赋值
类型不匹配,目的操作数未指明数据类型
类型不匹配
类型不匹配
源操作数为0~255
移位大于1时,应放入CL中
不能为段寄存器
两个操作数不能同时为MEM
未指明操作数的数据类型
操作数不能是立即数
操作数应为REGMEM
单操作数,且操作数应为REGMEM
源操作数为MEM
两个操作数不能同时为MEM

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。