冯博琴《微型计算机原理与接口技术》(第3版)配套题库【名校考研真题+课后习题+章节题库+模拟试题】
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 微处理器与总线

一、选择题

18086系统中,送给CPU的READY信号是由(  )芯片产生的。[华东理工大学研]

A.8284

B.8259

C.8250

D.8288

【答案】A

【解析】慢速存储器或外部设备送出的READY信号必须先经过8284时钟发生器,与时钟脉冲同步后,再送入CPU的READY引脚。

2某微机最大可寻址的内存空间为16MB,其CPU地址总线至少应有(  )条。[华东理工大学研]

A.32

B.16

C.20

D.24

【答案】D

【解析】16MB=16384KB=16777216B,即2的24次方,所以地址总线至少应有24条总线。

38086 CPU外部的地址总线和数据总线分别为(  )位。[哈尔滨工业大学研]

A.16,16

B.20,16

C.16,8

D.20,20

【答案】B

【解析】8086微处理器的性能特点:

16位的内部结构,16位双向数据信号线;

20位地址信号线,可寻址1MB存储单元。由此,8086 CPU外部的地址总线是20位,数据总线是16位。

4因为8086 CPU的字数据既可以存放在内存的偶地址,也可以安排在奇地址单元,所以其堆栈指针SP(  )。[哈尔滨工业大学研]

A.最好是指向偶地址单元

B.可以指向任何地址单元

C.只能指向偶地址单元

D.只能指向奇地址单元

【答案】C

【解析】堆栈操作都是字操作。堆栈段的段首地址能被16整除。必定是偶地址。SP指针执行的字数据也必定是对准字。

58088 CPU在进行对外设输出操作时,控制信号/IO和DT/必须是(  )。[上海交通大学研]

A.0,0

B.0,1

C.1,0

D.1,1

【答案】D

【解析】控制信号/IO是输入输出/存储器信号,该信号用来表示CPU是访问存储器,还是访问输入/输出设备。此信号为高电平,为I/O访问;若低电平,为存储器访问。DT/是数据发送的方向,如果为高电平,表示发送数据;若为低电平,表示接收数据。本题中是8088 CPU在进行对外设输出操作,是访问I/O,/IO=1进行的输出操作,是发送数据,DT/=1。

68086 CPU响应HOLD请求是在(  )。[北京邮电大学研]

A.每一指令周期后

B.每一个机器周期后

C.可以响应HOLD请求的每一机器周期后

D.在总线周期的T4状态或空闲状态T1之后的下一个时钟周期

【答案】D

【解析】当8086 CPU查到HOLD为高电平时,在总线周期的T4状态或空闲状态T1之后的下一个时钟周期发出响应总线请求信号的回答信号HLDA。

二、填空题

1决定计算机指令执行顺序的寄存器是______,它总是指向______。[北京邮电大学研]

【答案】IP;下一条指令所在的内存单元的偏移地址

【解析】指令指针IP是一个专用寄存器,用于控制程序中指令的执行顺序。程序运行时,IP始终指向要执行的下一条指令所在的内存单元的偏移地址。当EU执行本条指令时,IP中的内容自动增量,以指向下一条指令所在的内存单元,从而保证指令按顺序执行。

2任何CPU都有一个寄存器存放程序运行状态标志信息,在8086中,该寄存器是______。其中,根据运算结果是否为零决定程序分支走向的位分别是______。[北京邮电大学研]

【答案】FR;ZF

【解析】标志寄存器是控制寄存器位于EU中。它使用了16位中的9位,这9位根据各位的作用和含义,分为状态标志位和控制标志位。在状态标志位中有一个ZF标志,它反映运算结果是否为零,程序根据该位的判断来进一步影响或控制后继指令的执行。

38088 CPU内的堆栈是一种特殊的数据存储区,堆栈操作是______操作(字/字节?)其存取采用______的原则,它由______作地址指针管理。[中山大学研]

【答案】字;“后进先出”或“先进后出”;SP

【解析】堆栈是按照“后进先出”原则进行读/写访问的一段特殊存储区域,用于暂存数据,堆栈只能对16位数据(即一个字)进行。堆栈段最多包含64K个单元。堆栈段在内存中的位置由堆栈段寄存器SS和堆栈指针SP来指示。SS中存放堆栈段的首地址,SP中存放栈顶单元的地址。

48086 CPU中典型总线周期由______个时钟周期组成,其中T1期间,CPU输出______信息;如有必要时,可以在______两个时钟周期之间插入1个或多个Tw等待周期。[东南大学研]

【答案】4;地址;T3、T4

【解析】在每一个总线周期的第一个时钟周期T1期间,CPU输出地址,随后的3个T周期(T2~T4)用以传送数据。在数据系统中,一些低速设备在3个T周期内无法完成数据的传送,则在总线周期中插入若干个等待周期Tw,要读写的存储器或外部设备向CPU发出一个请求延长总线周期的信号,8086收到该信号后,就在T3和T4之间插入一个或多个等待周期Tw

58086中引脚BHE信号有效的含义表示______。[南京航空航天大学研]

【答案】高8位数据线

【解析】8086在引脚输出BHE信号,表示高8位数据总线AD15~AD8上的数据有效。

68086/8088系统中的8282是______器,在8086系统中最少要______片;8286是______器,起______作用,至少需要______片。[中国科学院研]

【答案】锁存器;3;总线驱动;增加数据总线的驱动;2

【解析】8282是一种通用的三态输出的8位锁存器,它用于数据的锁存、缓冲或信号的多路传输。8282锁存器有8个数据输入端和8个数据输出端。8086/8088系统采用20位地址,加上信号,所以,需要3片8282。

当一个系统中所含的外设接口较多时,数据总线上需要有发送器和接收器来增加驱动能力,8286就为总线驱动器(又称收发器),它是8位双向的。对于8086系统的数据总线是16位的,因此需要2片。

7当8086 CPU最大模式下读内存时,下列哪些信号的状态是正确的______[西安电子科技大学研]

答:是正确的。为存储器读信号,低电平有效;为存储器写操作,低电平有效;为I/O口写操作,低电平有效,为I/O读操作,低电平有效;DT/为数据发送/接受控制,高电平时发送数据,低电平时接收数据。

三、判断题

18086/8088允许各个逻辑段重叠和相邻。(  )[广州工业大学研]

【答案】正确

【解析】8086/8088系统中把1MB存储空间分成若干个逻辑段,每个逻辑段容量小于或等于64KB,因此1 MB存储空间可分为16个逻辑段(1MB/64KB=16)。允许它们在整个存储空间浮动,即段与段之间可以部分重叠、完全重叠、连续排列、断续排列,非常灵活。

2因字数据1234H为偶数字,故称其为对准字。(  )[北京航空航天大学研]

【答案】错误

【解析】对准字和非对准字是由存放在存储器中的位置而定的,对准字的低8位从地址为偶数的单元开始存放。

38086 CPU在读入数据前,其AD015线先变为高阻状态。(  )[北京航空航天大学研]

【答案】正确

【解析】AD015为地址/数据分时复用总线,在总线周期的第一个时钟周期(T1状态),输出低16位地址(记为A15~A0),以给出存储单元(或I/O)的地址。T2~T3状态,如果8086 CPU处于读周期,则D15~D0处于高阻状态,等待存储单元(或I/O)把数据放在数据总线上;如果8086 CPU处于写周期,则D15~D0传送数据给指定的存储器单元(或I/O)。

四、解答题

18086/8088 CPU在结构上由哪两个独立的处理单元构成?这样的结构其最主要的优点是什么?[上海交通大学研]

答:在微机中,一条机器指令由操作码和操作数构成,若干指令构成程序。微处理器执行一条指令的完整步骤需要两个阶段:取指和执行,取指是从内存中取出指令,执行是分析指令要求实现的功能,读取所需的操作数,执行指令规定的操作。如图2-1所示,传统的8位微处理器采用顺序执行方式,各条指令的执行按以上两个阶段交替执行。也就是说,首先取一条指令,然后执行该指令,之后再取下一条指令,再执行,如此重复,直到整个程序执行完毕。

在8086中,为了加快程序的执行速度,采用了重叠执行方式,各条指令的执行过程是重叠进行的。每条指令的执行过程也包括取指和执行指令两个阶段,但是相邻两条指令的执行过程有一部分是同时进行的。在执行一条指令时,可以同时取出下一条指令。在当前指令执行完毕后,就可以立即执行下一条指令。显然,这种重叠执行方式大大加快了程序的执行速度。

(1)为了实现指令的重叠执行方式,8086/8088微处理器内部分为两个独立的功能部件:执行部件EU(Execute Unit)和总线接口部件BIU(Bus Interlace Unit),执行部件EU专门负责指令的执行,总线接口部件BIU是从内存指定区域取出指令送到指令队列缓冲器。EU和BIU两个功能部件并行工作,EU执行的是BIU在前一时刻取出的指令,与此同时,BIU又取出下一时刻要执行的指令.

(2)这样的结构能使大部分取指令和执行指令的操作重叠进行,大大减少了等待指令所需的时间,提高了微处理器的利用率和整个系统的执行速度。

图2-1 8086指令的顺序执行和重叠执行

2某指令对应当前段寄存器CS=FFFFH,指令指针寄存器IP=FF00H,此时,该指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?试举例说明。[南京航空航天大学研]

答:FFFF0+FF00=10FEF0,最高位1丢失,所以该指令物理地址为0FEF0H,该指令指向该物理地址的CS;IP值不唯一。举例,CS:IP=0000:FEF0H也指向该物理地址。

3完成下列各式补码数的运算,并根据结果设置标志SF、ZF、CF和OF,指出运算结果是否溢出。[武汉理工大学研]

(1)00101101B+10011100B

(2)010111018-10111010B

(3)876AH-0F32BH

(4)10000000B+11111111B

解:(1)00101101B+10011100B

SF=1(运算结果的最高位为1,结果为负数),ZF=0(结果不全为0),CF=0(没有进位),OF=0(异号数相加,不会溢出),运算结果没有溢出。

(2)设Y=101110108,先求-Y的补码,

SF=1(运算结果的最高位为1,结果为负数),ZF=0(结果不全为0),CF=1(有借位),OF=1(Cs=0,Cp=1,V=Cs⊕Cp=1),运算结果有溢出。

(3)876AH-0F32BH

设Y=0F32BH=1111001100101011B,先求-Y的补码,

SF=1(运算结果的最高位为1,结果为负数),ZF=0(结果不全为0),CF=1(有借位),OF=0(Cs=0,Cp=0,V=Cs⊕Cp=0),运算结果没有溢出。

(4)10000000B+11111111B

SF=0(运算结果的最高位为0,结果为正数),ZF=0(结果不全为0),CF=1(有进位),OF=0(Cs=1,Cp=1,V=Cs⊕Cp=0),运算结果没有溢出。

4数据总线和地址总线在结构上有什么不同?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么,靠什么来区分地址和数据?[西北工业大学研]

答:(1)从结构上看,数据总线是双向的,即数据即可以从CPU送到其他部件,也可以从其他部件送到CPU;地址总线是专门用来传送地址信息的,地址总线是从CPU送出去的,所以地址总线是单向的。

(2)如果采用地址总线和数据总线复用技术,则需要在总线周期中依靠时序并配合一定的控制信号来区分。8086CPU采用的就是这种数据地址总线复用技术。

5存储器的每一个段最多为64KB,当程序运行后,4个段寄存器的内容分别为CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H;其中在DS段有一操作数,其偏移地址=0204H,求:

(1)指出各段首地址和末地址。

(2)求该操作数的物理地址。

(3)画出各段在内存中的分布。[西南交通大学研]

解:存储器的每一个段最多为64KB,每个段的段末地址在段起始地址的基础上增加了64K-1=0FFFFH个字节。

(1)4个段的段首地址和末地址分布为如下。

代码段:

首地址=1055H×10H+0H=10550H

末地址=10550H+0FFFFH=2054FH

数据段:

首地址=250AH×10H+0H=250A0H

末地址=250A0H+0FFFFH=3509FH

附加段:

首地址=2EF0H×10H+0H=2EF00H

末地址=2EF00H+0FFFFH=3EEFFH

堆栈段:

首地址=8FF0H×10H+0H=8FF00H

末地址=8FF00H+0FFFFH=9FEFFH

代码段可寻址的存储空间范围是:10550H~2054FH。

数据段可寻址的存储空间范围是:250A0H~3509FH。

附加段可寻址的存储空间范围是:2EF00H~3EEFFH。

堆栈段可寻址的存储空间范围是:8FF00H~9FEFFH。

(2)该操作数的偏移量=0204H,其物理地址=250A0H+0204H=252A4H。

(3)各段在内存分布如图2-2所示。从该分配图中我们可以看到,数据段和附加段是有部分重叠的。而其余各段是有间隔的。

图2-2 存储器分配图

6总线周期的含义是什么?8086 CPU的基本总线周期由几个时钟组成?如果一个8086 CPU的时钟频率为5 MHz,它的时钟周期是多少?一个基本总线周期是多少?[中山大学研]

答:(1)微机实现指令的功能体现为执行指令,每条指令的执行过程包括取指令和执行指令两个步骤,执行一条指令所需的时间称为指令周期。实现不同功能、完成不同操作的指令,其指令周期是不等长的。在执行指令的过程中,CPU要占用系统总线访问存储器或外部设备,以便从存储器或外部接口中读取指令或指令所需的操作数。CPU每占用一次系统总线,进行信息的输入输出所需要的时间就是总线周期。

(2)CPU在一个总线周期中访问一次存储器或外部设备接口,每一次访问过程都需要多个基本步骤并按一定顺序进行的,因此可以将每一个总线周期再具体划分为若干个小的阶段,每个阶段称为一个时钟周期。一个基本的8086总线周期由4个时钟周期组成的,每个时钟周期为一个状态。

(3)如果一个8086 CPU的时钟频率为5 MHz,它的时钟周期=1/5 MHz=0.2μs。

(4)一个总线周期包含4个时钟周期,那么一个基本总线周期=4×0.2μs=0.8 μs。

7请将下列左边的项与右边的解释联系起来。[东华大学研]

答:(1)CPU是微机的大脑,是微机的运算及控制部件。

(2)存储器用来存储程序和数据,它具有记忆功能,是计算机中必不可少的重要部件,主要分为两大类:随机存取存储器RAM和只读存储器。

(3)堆栈是存储器中的一段特殊区域,它是以先进后出或者后进先出方式工作的。

(4)指令指针寄存器IP始终保存着下一条要执行指令的偏移地址。

(5)堆栈指针寄存器SP指示堆栈段中的当前栈顶的偏移地址。

(6)标志寄存器F中共有9位标志位,其中6个状态标志有OF、SF、ZF、AF、CF、PF,指示当前指令执行的状态。

(7)标志寄存器F中的3个控制标志有DF、IF、TF,由它来控制CPU工作方式或工作状态。

(8)段寄存器是位于CPU中的总线接口单元BIU中,它用来存放8086 CPU当前可以访问的4个逻辑段的基地址,段寄存器有CS、DS、SS、ES。

(9)物理地址是CPU和存储器进行数据交换时所采用的地址,对8086系统来说,每个存储单元的物理地址都是20位的二进制数。

由此,本题的正确答案为:

8若已知当前(DS)=7F06H,在偏移地址为0075H开始的存储器中连续存放6个字节的数据,分别为11H、22H、33H、44H、55H和66H,要求:

(1)画出数据存放示意图,表明这些数据在存储器中的物理地址。

(2)如果要从存储器中读出这些数据,最少访问几次存储器,各读出哪些数据?[武汉大学研]

图2-3 数据存放示意图

答:(1)存放这6个字节的起始物理地址=7F06H×10H+0075H=7F0D5H,11H在7F0D5H单元,22H在7F0D6H,33H在7F0D7H单元,44H在7F0D8H单元,55H在7F0D9H单元,66H在7F0DAH单元。数据存放示意图如图2-3所示。

(2)由于是从奇地址开始存放,先读出11H一个字节,需要一个总线周期;接着22H存放在偶地址中,那么3322H就是一个对准字,读出一个字,需要一个总线周期;5544H也是一个对准字,读出它需要一个总线周期;剩下66H一个字节需要一个总线周期。因此至少需要4次读存储器操作,分别是:读出11H、3322H、5544H和66H。

9请说明8086的复位信号RESET的作用。[西北工业大学研]

答:大多数计算机系统中都有一根对系统进行启动的复位线,复位线和系统中所有的部件相连,复位可以使计算机系统的各部件从一个确知的状态开始工作。8086/8088 CPU在复位启动后,处理器的标志寄存器、指令指针寄存器IP、段寄存器DS,SS,ES和指令队列都被清除,但代码段寄存器CS被设置为0FFFFH,所以,CPU将从地址0FFFF0H开始执行指令。通常,在安排内存区域时,将高地址区作为只读存储区,而且,在0FFFF0H单元开始的几个单元中放一条无条件转移指令,转到一个特定的区域中,这个程序往往实现系统的初始化、引导监控程序或者引导操作系统等功能,这样的程序叫做引导和装配程序。

在8086系统中,RESET信号是高电平有效,脉冲宽度不低于4个时钟周期,否则复位不可靠。

10在最大模式下,8086 CPU实现对存储器的读、写或对接口的读、写时,各用到系统总线上的哪些信号?[天津大学研]

答:当8086 CPU对存储器的读写时,主要用到系统总线上的20位地址信号A19~A0, 16条数据线D16~D0和读、写控制线

当CPU对接口进行读写时,主要用到系统总线上的地址线(或),总线上的16条数据线,和对接口的读写控制信号

11请指出8086/8088 CPU工作于最小模式及最大模式时,CPU相应总线请求的工作过程及信号状态的变化。[中国科学院研]

答:当8086 CPU工作于最小模式时,总线控制信号包括ALE、DT/以及读/写信号等,均由CPU直接产生。若要使用系统总线,需通过HOLD信号向CPU发出申请,CPU每个时钟周期的上升沿都检测HOLD是否为高电平,当查到HOLD为高电平时,在总线周期的T4状态或空闲状态T1之后的下一个时钟周期发出响应总线请求信号的回答信号HLDA(高电平有效),同时将上述控制信号及复用的地址/数据线置为高阻态,让出总线供总线请求者使用。同时继续监督HOLD,直到该信号变为低电平,CPU才收回总线控制权。在HLDA为高电平阶段,CPU虽然不占用总线,但EU仍执行已在指令队列中的指令,直到指令需要使用总线时为止,时序关系图如2-4所示。

图2-4 时序关系1

最大模式时总线请求与授予信号由完成。这两个信号的功能与HOLD和HLDA两信号相似,区别在于前者上低电平有效且是双向的。在最大模式下,总线使用权的请求与授予过程可分为3个阶段:请求、授予和放弃。过程与最小模式下基本相同,只不过CPU响应总线请求是有条件的。当CPU检测到(或为低电平时,CPU还必须满足下列条件方可响应总线请求:

(1)当CPU为8086时,前一次总线传递不是对奇地址单元读/写一个字的低位字节,若为8088 CPU,则必须完成一个字的第二字节的传递。

(2)前一个总线周期不是第一个中断响应周期,因为在两个中断响应周期中间不接受总线请求,以保证一个中断响应的全过程。

(3)不再执行带LOCK前缀的指令。时序关系如图2-5所示。

图2-5 时序关系2