习题一 概 述
主要内容:计算机系统的组成和各部分的作用,微型计算机组成,微处理器的结构;计算机中的信息表示; 微机系统的结构特点。 1.1 简述微型计算机的组成。
【答】微型计算机是由微处理器、存储器、输入/输出接口电路和系统总线构成的裸机系统。1.2 微处理器、微型计算机和微型计算机系统三者之间有什么不同?
【答】将运算器与控制器集成在一起,称为微处理器。微处理器是微处理器的核心。微型计算机是由微处理器、存储器、输入/输出接口电路和系统总线构成的裸机系统。微型计算机系统是以微型计算机为主机,配上系统软件和外设之后而构成的计算机系统。三者之间是有很大不同的,微处理器是微型计算机的一个组成部分,而微型计算机又是微型计算机系统的一个组成部分。 1.3 CPU在内部结构上由哪几部分组成?CPU应具备什么功能?
【答】CPU在内部结构上由算术逻辑部件(ALU);累加器和通用寄存器组;程序计数(指令指针)、指令寄存器和译码器;时序和控制部件几部分组成。不同CPU的性能指标一般不相同,但一般CPU应具有下列功能:可以进行算术和逻辑运算;可保存少量数据;能对指令进行译码并执行规定的动作;能和存储器、外设交换数据;提供整个系统所需要的定时和控制;可以响应其它部件发来的中断请求。 1.4 累加器和其他通用寄存器相比有何不同?
【答】累加器是比较特殊的通用寄存器。它在某些指令执行前,可以保存一源操作数,还在执行后又用来保存运算结果,另外它一般也用来完成输入/输出指令。而通用寄存器则一般只用来保存参加运算的数据、运算的中间的结果以及用来保存地址。
1.5 从传输的信息类型而言,总线分为哪几种类型?微型计算机采用总线结构有什么优点? 【答】(1)分为地址总线,数据总线与控制总线三类,又称三总线。
(2)微型计算机的三总线结构是一个独特的结构。采用总线结构,系统中各功能部件之间的相互关系,变成了各功能部件面向总线的单一关系。一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩展。
1.6 控制总线传输的信号大致有哪几类?
【答】控制总线用来传输控制信号,其中包括CPU输出到存储器和输入/输出接口电路的控制信号,如读信号、写信号和中断响应信号等;还包括其它部件输入到CPU的信号,比如,时钟信号、中断请求和准备就绪信号。
1.7数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用
部分总线,那么要靠什么来区分地址和数据?
【答】从结构上看数据总线是双向的,而地址总线从结构上看却是单向的。如果一个系统的数据总线和地址总线合用一套总线或者合用部分总线,一般可利用时钟,在总线上采用分时复用技术来区分地址和数据,例如可在总线周期的若干个时钟周期,约定某周期传输地址、在另一周期传输数据。 1.8 将下列十进制数转换成8421BCD码:
1049 =0001 0000 0100 1001 902=1001 0000 0010
851.37=1001 0101 0001 . 0011 0111 0.6259=0000. 0110 0010 0101 1001 1.9 将下列各组数用八位的补码相加:
(+75)+(-6)
[+75]补=0100 1011 [-6] 补=1111 1010 [+75]补+ [-6] 补=1000 0110+1000 0110=0100 0101
习题二 8086微处理器
答案
主要内容:主要介绍8086/8088CPU内部结构。了解80X86CPU的特点。
2.1 8086 CPU在内部结构上由哪几部分组成?其功能是什么?
【答】8086的内部结构分成两部分。总线接口部件BIU,负责控制存储器与I/O端口的信息读写,
包括指令获取与排队、操作数存取等。执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。
2.2 8086的总线接口部件有那几部分组成? 其功能是什么?
【答】8086的总线接口部件主要由下面几部分组成:4个段寄存器CS/DS/ES/SS,用于保存各段地
址; 一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址; 一个20位地址加法器,用于形成20位物理地址;指令流字节队列,用于保存指令;存储器接口,用于内总线与外总线的连接。
2.3 8086的执行单元(部件)由那几部分组成?有什么功能?
【答】8086的执行单元部件主要由下面几部分组成:控制器、算数逻辑单元、标志寄存器、通用寄
存器组。
(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。 (2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。
(3)标志寄存器,使用9位,标志分两类。其中状态标志6位,存放算数逻辑单元ALU运算结果特征;控制标志3位,控制8086的3种特定操作。 (4)通用寄存器组,用于暂存数据或指针的寄存器阵列。 2.4 8086内部有哪些通用寄存器?
【答】四个16位数据寄存器AX、BX、CX、DX,二个指针寄存器SP、BP, 二个变址寄存器SI、DI。
这些寄存器使用上一般没有限制,但对某些特定指令操作,必须使用指定寄存器,可参考后面指令系统章节。
2.5 8086内部有哪些段寄存器?各有什么用途?
【答】四个16位段寄存器:CS、DS、SS、ES,分别保存代码段、数据段、堆栈段与扩展段的段地
址。
2.6 8086CPU状态标志和控制标志又何不同?程序中是怎样利用这两类标志的? 8086的状态标志和
控制标志分别有哪些? 【答】(1)标志分两类:状态标志(6位),反映刚刚完成的操作结果情况。控制标志(3位),在
8086特定指令操作中起控制作用。
(2)利用状态标志可以掌握当前程序操作的结果,例如了解是否产生进位,是否溢出等。例如利用控制标志可以控制程序的单步调试。
(3)状态标志包括:包括零标志ZF、符号标志SF、奇偶标志PF、进位标志CF、辅助进位标志AF、溢出标志OF。控制标志包括:单步运行标志TF、方向标志DF与中断允许标志IF。 2.7 8086/8088和传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?
8086CPU执行转移指令时,指令队列寄存器内容如何变化? 【答】(1)传统的计算机一般按照取指令、指令译码与执行指令的串行步骤工作。
(2)在8086CPU中,指令的提取与执行分别由总线接口部件BIU与执行部件EU完成,两个单元重叠并行工作,这种机制称为流水线,这种工作方式有力的提高了CPU的工作效率。 (3)8086CPU执行转移指令时,首先清空当前指令队列寄存器,然后从新地址取指令重新填
满指令队列。
2.8 8086CPU的形成三大总线时,为什么要对部分地址线进行锁存?用什么信号控制锁存? 【答】 为了确保CPU对存储器和I/O端口的正常读/写操作,要求地址和数据同时出现在地址总线和数
据总线上。而在8086CPU中AD0~AD15总线是地址/数据复用的,因此需在总线周期的前一部分传送出地址信息,并存于锁存器中,而用后一部分周期传送数据。8086CPU中是通过CPU送出的ALE高电平信号来控制锁存的。
2.9 将两数相加,即0100 1100加 0110 0101,CF、PF、AF、ZF、SF、OF各为何值? 【答】0100 1100+0110 0101=10110001
CF=0,PF=1,AF=1,ZF=0,SF=1,OF=1
2.10 存储器的逻辑地址由哪几部分组成?存储器的物理地址是怎样形成的?一个具有32位地址
线的CPU,其最大物理地址为多少?
【答】存储器的逻辑地址由段地址与段内偏移地址组成。存储器的物理地址:将16位段地址左移4
位后,加上16位段内偏移地址,形成20位物理地址。一个具有32位地址线的CPU,其最大物理地址为2=4*1024*1024*1024B=4GB。
2.11 存储器物理地址400A5H~400AAH单元现有6个字节的数据分别为11H,22H,33H,44H,55H,
66H,若当前(DS)= 4002H,请说明它们的偏移地址值。如果要从存储器中读出这些数据,需要访问几次存储器,各读出哪些数据?
【答】由于:物理地址=400A5H=段地址*16+偏移地址=40020H+偏移地址 偏移地址=400A5-40020=85H
若以最少访问次数而言,可以如下操作:从奇地址400A5H中读出一个字节11H;从偶地
址开始400A6H、400A7两个单元读出一个字3322H;从偶地址400A8H、400A9H两个单元读出一个字5544H;从偶地址400AAH中读出一个字节66H。最少读4次。
2.12 在 8086中,逻辑地址FFFFH∶0001H、00A2H∶37F0H和B800H∶173FH的物理地址分别是多
少?
【答】(1)FFFFH*16+0001H=FFFF0H+0001H=FFFF1H (2)00A20+37F0=4210H (3)B8000+173F=B973FH
322.13 在 8088/8086中,从物理地址12388H开始顺序存放下列三个双字节的数据,651AH, D761H
和007BH,请问物理地址12388H~1238DH6个单元中分别是什么数据? 【答】物理地址12388H~1238DH单元中的数据如下表:
地址 12388H 12389H 1238AH 1238BH 1238CH 1238DH
数据 1AH 65H 61H D7H 7BH 00H
2.14 8086/8088 CPU 有40条引脚,请按功能对它们进行分类? 【答】 地址总线:AD0~AD15,A16~A19;
数据总线:AD0~AD15;
控制总线: ALE, DEN, DT/R, BHE, M/IO, WR, RD, HOLD, HLDA, INTR, INTA, READY,
RESET.
2.15 8086/8088 CPU的地址总线有多少位?其寻址范围是多少?
【答】8086/8088CPU的地址总线均为20位,8086/8088CPU的寻址范围为2=1MB.
2.16 8086/8088 有两种工作方式,它们是通过什么方法来实现?在最大方式下其控制信号怎样产生? 【答】MN/MX引脚接至电源(+5V),则8086CPU处在最小组态(模式); MN/MX引脚接地,则8086CPU
处在最大组态(模式)。
20
在最大模式下,需要用外加电路来对CPU发出的控制信号进行变换和组合,以得到对存储器和I/O端口的读/写信号和对锁存器8282及对总线收发器8286的控制信号。
2.17 8086 CPU工作在最小模式(单CPU)和最大模式(多CPU)主要特点是什么?有何区别? 【答】最小模式MN/MX接+5V,构成小规模的应用系统,只有8086一个微处理器,所有的总线控制信
号均为8086产生,系统中的总线控制逻辑电路,减少到最小; 不需总线控制器8288;适用于单一处理机系统。
最大模式MN/MX接地,用于大型(中型)8086/8088系统中,系统总是包含有两个或多个微处理
器,其中一个主处理器就是8086或8088。其它的处理器称协处理器,协助主处理器工作,需要总线控制器来变换和组合控制信号, 需总线控制器8288; 适用于多处理机系统。
2.18 8086/8088 I/O 的读/写周期时序与存储器读/写周期的主要差异是什么?
【答】在8086存储器周期中,控制信号M/IO始终为高电平;而在I/O周期中,M/IO始终为低电平。 2.19 CPU启动时,有那些特征?如何寻找8086/8088系统的启动程序?
【答】在8088/8086系统中,CPU启动后,处理器的标志寄存器、指令指针寄存器IP、段寄存器DS、SS、
ES和指令队列都被清零,但是代码段寄存器CS被设置为FFFFH。因为IP=0000,而CS=FFFFH,所以,8088/8086将从地址FFFF0H开始执行指令。
通常,在安排内存区域时,将高地址区作为只读存储区,而且在FFFF0H单元开始的几个单元中放入一条无条件转移指令,转到一个特定的程序中,这个程序往往实现系统初始化、引导监控程序或者引导操作系统等功能,这样的程序叫做引导和装配程序。
2.20 8086和8088是怎样解决地址线和数据线的复用问题的? ALE信号何时处于有效电平? 【答】8086/8088采用时间分隔技术与地址锁存技术,通过地址锁存允许信号ALE锁存CPU送出的地址,
有效解决地址线和数据线的复用问题。
2.21 8086系统在最小模式时应该怎样配置?请画出这种配置并标出主要信号的连接关系. 【答】8086在最小模式下的典型配置。见教材的图2.7。
一片8284A,作这时钟发生器。3片8282或74LL373,用来作为地址锁存器。2片8286/8287作为总线收发器。
2.22 8086构成系统分为哪两个存储体?它们如何与地址、数据总线连接?
【答】8086构成系统分为偶地址存储体和奇地址存储体。偶地址存储体:连接D7~D0,A0=0时选通;奇地址存储体:连接D15~D8, BHE=0,A0=1时选通。见教材图2.11。
2.23 BHE信号和A0信号是怎样的组合解决存储器和外设端口的读/写操作的?这种组合决定了
8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分?怎样区分? 【答】BHE信号和A0的组合以及操作如下表。
BHE A0 0 1 0 0 1 0 0 1 1 0 操 作 从偶地址开始读/写一个字 从偶地址单元或端口读/写一个字节 从奇地址单元或端口读/写一个字节 从奇地址开始读/写一个字 引 腿 AD15~AD0 AD7~AD0 AD15~AD8 AD15~AD8 AD7~AD0
2.24 8086 CPU读/写总线周期各包含多少个时钟周期?什么情况下需要插入 TW 等待周期? 应插入
多少个Tw,取决于什么因素?什么情况下会出现空闲状态Ti ? 【答】8086CPU读/写总线周期包含4个时钟周期。
当CPU与慢速的存储器或外设I/O端口交换信息,系统中就要用一个电路来产生READY信号,并传递给CPU的READY引脚。CPU在T3状态的下降沿对READY信号进行采样。如果无效,那么,就会在T3之后插入等待状态Tw。插入Tw的个数取决于CPU接收到高电平READY信号的时间。
CPU在不执行总线周期时,总线接口部件就不和总线打交道,此时,进入总线空闲周期。
自测试:
1.选择题:
(1)某微机具有16M字节的内存空间,其 CPU的地址总线应有(E)条。 A.26 B.28 C.20 D.22 E.24
(2) 8086/8088 CPU要求加到 RESET引脚上的复位正脉冲信号,其宽度至少要( 4 ) 个时钟周期才能有效复位,如果是上电复位则要求正脉冲的宽度不少于( 50 )us 。 A.4,50 B.5,60 C.4,70 D.5,80
(3)当RESET信号进入高电平状态时,将使8086/8088 CPU的( D )寄存器初始化FFFFH。 A.SS B.DS C.ES D.CS
(4) 8086/8088 CPU与慢速的存储器或I /O接口之间,为了使传送速度能匹配,要在(C)状态之间插入若干等待周期Tw。
A.T1 和T2 B.T2 和T3 C.T3 和T4 D.随机 2. 填空题:
(1) 8086/8088 CPU执行指令中所需操作数地址由(寻址方式和地址寄存器)计算出( 16 )位偏移量部分送( IP ),由(段地址加上偏移量部分)最后形成一个( 20 )位的内存单元物理地址。
(2) 8086/8088 CPU在总线周期的 T1 状态,用来输出(20)位地址信息的最高( 4 )位,而在其它时钟周期,则用来输出(状态)信息。
(3) 8086/8088 CPU复位后,从(FFFF0H )单元开始读取指令字节,一般这个单元在()区中,在其中设置一条(无条件转移 )指令,使CPU对系统进行初始化。
(4)8086系统的存储体系结构中,1M字节存储体分( 两 )个存储体,每个存储体的容量都是(512K )字节,其中和数据总线D15~D8相连的存储体全部由(奇地址)单元组成,称为高位字节存储体,并用( 高电平 )作为此存储体的选通信号。
(5)8086/8088系统中,可以有( 2 )个段地址,任意相邻的两个段地址最短相距(16)个存储单元,最长相距(2)存储单元。
(6)用段基值及偏移地址来指明一内存单元地址称为(物理地址 )。
1616