第二章
2.8086CPU内部由哪两部分组成?它们的大致是如何工作的?
8086CPU由指令执行部件EU和总线接口部件BIU两部分组成
①BIU先执行读存储器操作,从给定地址单元中取出指令,送到先进先出的指令队列
中等待执行。存储器的物理地址=CS◊16+IP,在地址加法器∑中形成
②EU从指令队列中取走指令,经EU控制器译码分析后,向各部件发控制命令,以完
成执行指令的操作。BIU与EU是并行工作方式
③当指令队列已满,EU在执行指令,未向总线接口单元BIU申请读/写内存或I/O操
作时,BIU处于空闲状态
④指令执行过程中,若需对存储器或I/O端口存取数据,EU就要求BIU去完成相应的
总线周期
⑤EU执行完当前指令,如果指令队列空,EU处于空闲状态
5. 两个带符号数 1011 0100B 和 1100 0111B 相加,运算后各标志位的值等于多少?哪些标志
位是有意义的?如果把这两个数当成无符号数,相加后哪些标志位是有意义的?
(1)两个带符号数:不考虑CF标志
1011 0100
+ 1100 0111
——————
1 0111 1011
运算后各标志位状态如下:
CF=1,有进位,对于带符号数,无意义。
PF=1,结果有偶数个 1
AF=0,无半进位,非 BCD 码运算,无意义。
ZF=0,结果非 0
SF =0,结果为正数
OF=1,溢出(两个负数相加,结果变成了正数)
(2)两个无符号数:不考虑 SF 和 OF 标志
1011 0100
+ 1100 0111
——————
1 0111 1011
运算后各标志位状态如下:
CF=1,有进位
PF=1,结果有偶数个 1
ZF=0,结果非 0
AF=0,无半进位,非 BCD 码运算,无意义。
SF、 OF 无意义。
9.已知CS:IP=3456H:0210H,CPU要执行的下条指令的物理地址是多少?
段起始地址:3456H◊16=34560H
下条地址:34560H+0210H=34770H
12. 如果从存储单元2000H开始存放的字节数据为:3AH,28H,56H,4FH,试画出示意图
说明。从2000H和2001H开始取出一个字的数据各要进行几次操作?取出的数据分别等于多少?
2000H=3AH
2001H=28H
2002H=56H
2003H=4FH
(1)从2000H取出一个字的数据需要一次操作,283AH
(2)从2001H取出一个字的数据需要两次操作,5628H
本题注意以下基本理论:
若在存储器中存放的数据为一个字(16位)时,则将每一个字的低字节(低8位)存放在低地址中,高字节(高8位)存放在高地址中,并以低地址作为该字的地址。
存储单元数据存取一般从偶体开始。从偶地址单元开始存取一个字只要1次操作,从奇地址开始要2次操作。
BHE非=0(有效),访问奇存储体,奇存储体数据线与数据总线高8位D15~D8连,传送高8位数据;
A0=0,访问偶存储体,偶体数据线与数据总线低8位D7~D0连,传送低8位数据;
13. 8086 工作于最小模式时,硬件电路主要由哪几部分组成?为什么要用地址锁存器、数据
缓冲器和时钟发生器。(画图)
8086 工作于最小模式时,硬件电路主要由1片8086CPU,1片8284A时钟信号发生器,
3片74LS373锁存器,2片74LS245总线缓冲器等四部分组成
用地址锁存器的原因:由于 8086CPU 的地址/数据线分时复用,所以需要通过 74LS373 锁存器实现地址信号的锁存,分离地址信号和数据信号。地址数/据线先传地址信号,被锁存后,再传送数据或状态信号。
用数据缓冲器原因:用于提高数据总线的驱动能力,以实现多负载的带载能力。
用时钟信号发生器原因:用于产生系统时序所需要的时钟信号。8086CPU本身无法提供。
17. 什么是总线周期?一个基本的总线周期需要几个时钟周期?MIPS的含义是什么?
若8086-2的时钟频率为8MHz,它每秒可执行多少条指令?
(1)总线周期:BIU完成一次访问存储器或I/O端口操作所需要的时间称为总线周期。
(2)一个基本的总线周期是由4个(或4个以上)时钟周期T组成的。
(3)MIPS表示每秒处理的百万条指令数。
(4)若8086-2的时钟频率为8MHz,其时钟周期为:125ns,基本总线周期为 500ns,
每秒最多可执行200万条指令。