微机原理第1-2章习题(答案)
1. 什么叫微处理器?什么叫微型计算机?什么叫微型计算机系统?这三者有什 么联系和区别?
答:微处理器是指微缩的CPU大规模集成电路,其职能是执行算术、逻辑 运算和控制整个计算机自动地、协调地完成操作;
微型计算机是以微处理器为核心,配上大规模集成电路的RAM、ROM、I/O 接口以及相应的辅助电路而构成的微型化的计算机装置;
微型计算机系统是以微型计算机为核心构成的某种特殊用途的应用系统; 实际上,微型计算机是我们普通意义上提到的计算机的一种,而微处理器是 微型计算机的核心,微型计算机系统则是微型计算机在不同应用场合下的扩展。
(注意,对于微型计算机和微型计算机系统的区别在不同的参考书上可能有不同 的解释。其中-•种看法是:微型计算机是指纯硬件设备(也就是所谓的裸机), 微型计算机系统才是真正包括软件和硬件在内的、有实用价值的微型计算机设 备;另一种看法是:微型计算机是具有最简单软、硬件配置的微型计算机设备, 而微型计算机系统是指具有较丰富的软硬件配骨、适用于某些特别应用场合的微 型计算机设备。本书认为,这两个概念的区别在目前来说不是非常明显和非常重 要,因此采用了比较含糊的说法。)
2. 什么叫机器数?什么叫真值?试综述有符号数和无符号数的机器数主耍有哪 些表示方法。
答:一般数学上用“ + ”“一”号加上数值大小表示数据的形式我们称为数据 的真值,如+ 15、-25等;而计算机中用二进制表示的、符号也数码化了的带 符号数称为机器数,如+ 15可以表示为00001111, -25可以表示为10011001 (原码形式)。计算机中,无符号数可以直接用二进制、八进制、十六进制或BCD 码等形式来表示;而带符号数可以用二进制、八进制或十六进制的原码、反码、 补码三种方式来表示。
3. 写出下列十进制数的原码、反码和补码表示(用8位二进制数表示,最高位 为符号位):
(1) 13 (2) 120 (3) 35 (4) -127
X)/ \\7 \\7 \\7 12 3 4 /(V z/l\\ z(\\ 7(\\
(13)10= (0000,1101)原码=(0000,1101)反日=(0000,1101)补码
(120) 10= (0111, 1000)原码=(0111, 1000)反码=(0111, 1000)补码 (35) 10= (0010, 0011)原码=(0010, 0011)反码=(0010,0011)补码
(—127) 10二(1111, 1111)原码=(1000, 0000)反码=(1000, 0001)补码
4. 8086CPU分为哪两个部分?各部分主要db什么组成?
答:8086/8088 CPU分为总线接口部件(BIU)和执行部件(EU)两个部分。 其
中:
BIU包括:4个16位的段地址寄存器(CS、DS、SS、ES);
1个16位的指令指针寄存器IP; 1个20位的地址加法器; 指令队列寄存器; 内部寄存器;
输入输出总线控制逻辑;
EU包括:4个16位的通用数据寄存器(AX、BX、CX、DX);
4个16位的专用寄存器(BP、SP、SI、DI); 1个16位的标志寄存器FR; 5. 什么叫指令队列? 8086CPU中指令队列有什么作用?其长度是多少字节? 答:指令队列是用来暂存指令的一组寄存器,按“先进先出”原则读写。 在8086CPU中,只要指令队列未填满,BIU就从外部存储器取指令并放 入指令队列中;另一方面,只要指令队列中不空,EU就可将指令队列中己有的 指令取出执行,这样BIU和EU按并行方式重叠操作,大大提高了 CPU的利 用率,也降低了 CPU对存储器、I/O端口存取速度的要求。
8086CPU中的指令队列缓冲器长度为6个字节。 6. 8086CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通 常哪几个寄存器亦可作为地址寄存器使用?
答:8086 CPU中共有:8个16位的通用寄存器AX、BX、CX、DX、 BP、SP、SI、DI; 2个变址寄存器SI、DI; 2个指针寄存器BP、SP;
其中BX、BP、SI、DI亦可作地址寄存器。 7. 8086 CPU中有哪些标志位?它们的含义和作用如何?
答:8086/8088 CPU中共有9个标志位,其中DF、IF和TF为控制标志 位,其余6个为状态标志位。它们的含义和作用如下所示:
CF (Carry Flag)进位标志:若算术运算的结果产生了进位或借位(对字节 操作最高位是D7位;对字操作最高位是D15位),则CF=1,否则CF=0。
PF(Parity/Even Flag)奇偶标志:如果运算结果中含有偶数个1,则PF=1, 否则PF=0。此标志位主要用于数据通信中,检测数据传送有无出错。
AF (Auxiliary Carry Flag)辅助进位标志:用于反映一个字节(字的低字节) 的低4位向高4位有无进位(借位)的情况,有进(借)位时,AF=1,否则AF =0。这个标志位主要用于实现BCD码算术运算所需的二.十进制调整之用。
ZF (Zero Flag)零标志:若运算结果为0,此标志为1;否则ZF=0。
SFCSign Flag)符号标志:因为补码运算的最高位是符号位,所以它和运算 结果的最高位(字节操作是D7位,字操作是D15位)状态相同。当运算结果 为负时,SF=1;否则SF=0。
OF (Overflow Flag)溢出标志:在带符号数的加或减运算中结果超出8位 或16位符号数所能表示的数值范围(一128〜127或一32768〜+ 32767)时, 产生溢出使OF=1,否则OF=0。
DF (Direction Flag)方向标志位:此标志位用以控制串操作指令地址指针的 步进方向。每执行一条串操作指令,对地址要进行一次调整(对字节操作为加I 或减1,对字操作为加2或减2)。方向标志DF决定地址是增量还是减量。 若DF=1,串地址为减量;DF=0,则为增量。
IF (Interrupt Enable Flag)中断允许标志位:也称为开中断标志位。若使IF =1,则CPU允许接受外部来的可屏蔽中断源发出的中断请求;若使IF=0, 则表示CPU不响应此中所请求。IF对非屏蔽中断及CPU内部中断请求均不起 作用。
TF (Trap Flag)陷阱标志位:也称为跟踪标志位。若TF=1,则CPU处于 单步执行指令的工作方式。在这种工作方式下,CPU每执行完一条指令就自动 地产生一次类型为1的内部中断,可以借此检查这条指令的执行情况。
8. 什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处? 答:逻辑地址由两个16位的部分即段基址和偏移量组成,一般在程序中出 现的地址都表示为逻辑地址形式;物理地址是一个20位的地址,它是唯一能代 表存储空间每个字节单元的地址,一般只出现在地址总线上。
由于8086CPU中的寄存器只有16位长,所以程序不能直接存放20位的 物理地址,而必须借助逻辑地址,即用两个16位的寄存器来表示物理地址。他 们之间的关系是:物理地址=段基址*16 +偏移量;另外,一个物理地址可对应 多个逻辑地址。
9. 8086 CPU使用的存储器为什么要分段和分体?怎么分段和分体?
答:8086为16位CPU,其内部的ALU、相关的地址寄存器(如SP、IP以 及BX、BP、SI、DI)等都是16位的,因而对存储器地址的处理也只能是16位 操作,即8086的直接寻址能力在64KB范围内。而实际上8086有20条地址线, 它的最大寻址空间为1MB。这就产生了一个矛盾,即如何用16位的地址寄存器 去表示一个20位的存储器物理地址?实际使用的解决办法是:1MB大小的存 储空间分为若干将“段”每段不超过64KBo这样,一个20位的物理地址就可 以用“16位段基址:16位偏移量”的形式(称为逻辑地址)来表示了,其中段 地址存放在8086的段寄存器中。
8086为16位CPU,数据总线宽度为16位,一•次能处理2个字节,而存储 器的基本单元为1字节,为了兼顾CPU的处理能力和充分利用存储器资源,采 用分体结构来分别处理高低字节。
10. 已知当前段寄存器的基值(DS) =021FH, (ES) =0A32H, (CS) =234EH, 则上述各段在存储器空间中物理地址的首址及末地址号是什么?
答:数据段:021F0H〜121EFH
附加段:()A32OH~1A31FH
代码段:234E0H〜334DFH
11. 若(CS)=5200H 口寸,物理转移地址为5B230H,则当CS的内容被设定为 7800H,物理转移地址应为多少?
答:按题口条件可知该转移地址距CS所指代码段的段基址的偏移量为9230H (即=5B230H-52000H),因此若(CS) =7800H,则物理转移地址应为:78000H +9230H=81230Ho
12. 某系统初始化后有(SS) =2258H, (SP) =0800H,说明该堆栈段在存储器 中的物理地址范围。若当前堆栈中存入10个字节数据,那么SP内容应为什么 值? 答:堆栈段在存储器中的物理地址范围为:2258OH〜22D80H,其中2258OH (=2258H*16)为堆栈段的段基址,而22D80H (=2258H*16+0800H)为栈底地 址。在存入10个字节数据后SP内容应为07F6H (=0800H-0AH)o
13. 8086 CPU读/写总线周期包含多少个时钟周期?什么情况下需要插入Tw等 待周期? Tw的多少取决于什么因素?什么情况下会出现空闲状态L ?
答:8086 CPU的基本读/写总线周期包括4个时钟周期。在某些情况下, 被写入数据或被读取数据的存储器或外设在速度上跟不上CPU时,就会由存储 器或外设在T3状态启动前向CPU发无效的READY信号,于是CPU将在 T3之后插入1个或多个附加的等待周期Tw。
如果在1个总线周期之后不立即执行下一个总线周期,那么总线就处于空 闲状态,即执行空闲周期Tio
14. 现有6个字节的数据分别为HH, 22H, 33H, 44H, 55H, 66H,已知它们在 存储器中的物理地址为400A5H-400AAH,若当前(DS) =400211,请说明它们的 偏移地址值。如果耍从存储器中读出这些数据,需耍访问几次存储器?每次各读 出哪些数据?
答:这几个字节数据的偏移地址值为:0085H〜008AH (偏移地址=物理地 址-段基址*16=物理地址- 40020H)数据是以字节形式存放的。8086CPU, 可分为以下三种情况:若以字节方式读数据,则每读一个字节需耍访问一次存储 器,共需6个总线周期;若以字的方式读数据,由于存放格式为非规则字,故 每读一个非规则字需要两个总线周期,3个非规则字仍需6个总线周期,每个 总线周期读出一个字节;若对读取方式无具体规定,则可以先读一个奇地址字节 11H,然后连续读两个规则存放的字3322H、5544H,最后读偶地址字节66H, 这样共需访问4次存储器。
因篇幅问题不能全部显示,请点此查看更多更全内容