现代微型计算机与接口 习题 解答
- 格式:doc
- 大小:422.00 KB
- 文档页数:33
习 题 一
1. 8086CPU 由哪几个部件构成?它们的主要功能各是什么?
8086 CPU 由指令执行部件EU 和总线接口部件BIU 两个部份组成。指令执行部件主要功能是执行指令。总线接口部件的主要功能是完成访问存储器或I/O 端口的操作:
•
形成访问存储器的物理地址; •
访问存储器取得指令并暂存到指令队列中等待执行; •
访问存储器或I/O 端口以读取操作数参与EU 运算,或存放运算结果 2. 什么是逻辑地址?什么是物理地址?它们各自如何表示?如何转换?
程序中使用的存储器地址称为逻辑地址,由16位“段基址”和16位“偏移地址”(段内地址)组成。段基址表示一个段的起始地址的高16位。偏移地址表示段内的一个单元距离段开始位置的距离。访问存储器的实际地址称为物理地址,用20位二进制表示。将两个16位二进制表示的逻辑地址错位相加,可以得到20位的物理地址:
物理地址=段基址×16 + 偏移地址
在32位CPU 的保护模式下,“逻辑地址”的表示产生了一些变化,请参考第8章的相关内容。
3. 什么是“堆栈”?它有什么用处?在使用上有什么特点?
堆栈是内存中的一块存储区,用来存放专用数据。例如,调用子程序时的入口参数、返回地址等,这些数据都按照“先进后出”的规则进行存取。SS 存放堆栈段的段基址,SP 存放当前堆栈栈顶的偏移地址。数据进出堆栈要使用专门的堆栈操作指令,SP 的值在执行堆栈操作指令时根据规则自动地进行修改。
4. 设X=36H ,Y=78H ,进行X+Y 和X -Y 运算后FLAGS 寄存器各状态标志位各是
什么?
5. 按照传输方向和电气特性划分,CPU 引脚信号有几种类型?各适用于什么场合? CPU 引脚传输的信号按照传输方向划分,有以下几种类型:
输出:信号从CPU 向外部传送;
输入:信号从外部送入CPU ;
双向:信号有时从外部送入CPU ,有时从CPU 向外部传送。
双向信号主要用于数据信号的传输;输出信号用于传输地址信号和一些控制
信号;输入信号主要用于传输外部的状态信号(例如READY )和请求(中断、DMA )信号。
按照信号的电器特性划分,有以下几种类型:
一般信号:用来传输数据/地址信号时,高电平表示“1”,低电平表示“0”;用来
表示正逻辑的控制/状态信号时,“1”表示有效,“0”表示信号无效;
用来表示负逻辑的控制/状态信号时,“0”表示有效,“1”表示信号无
效。
三态信号:除了高电平、低电平两种状态之外,CPU内部还可以通过一个大的电
阻阻断内外信号的传送,CPU内部的状态与外部相互隔离,也称为“悬
浮态”。CPU放弃总线控制权,允许其他设备使用总线时,将相关信
号置为“悬浮态”。
6.8086CPU以最小模式工作,现需要读取内存中首地址为20031H的一个字,如何执
行总线读周期?请具体分析。
为了读取内存中首地址为20031H的一个字,需要执行二个总线读周期。
第一个总线周期读取20031H字节内容,进行的操作如下。
T1状态:IO
M= 1,指出CPU是从内存读取数据。随后CPU从地址/状态复用线
/
(A19/S6~A16/S3)和地址/数据复用线(AD15~AD0)上发出读取存储器的20位地址20031H。
为了锁存地址,CPU在T1状态从ALE引脚输出一个正脉冲作为地址锁存信号。
由于需要读取高8位数据线上的数据(奇地址),BHE= 0。
为了控制总线收发器8286接受数据,R/
DT= 0。
T2状态:地址信息撤消,地址/数据线AD15~AD0进入高阻态,读信号RD开始变为低电平(有效),DEN=0,用来开放总线收发器8286。
T3状态:CPU检测READY引脚信号。若READY为高电平(有效)时,表示存储器或I/O端口已经准备好数据,CPU在T3状态结束时读取该数据。若READY为低电平,则表示系统中挂接的存储器或外设不能如期送出数据,要求CPU在T3和T4状态之间插入1个或几个等待状态Tw。
T W状态:进入T W状态后,CPU在每个T W状态的前沿(下降沿)采样READY信号,若为低电平,则继续插入等待状态T W。若READY信号变为高电平,表示数据已出现在数据总线上,CPU从AD15~AD0读取数据。
T4状态:在T3(T W)和T4状态交界的下降沿处,CPU对数据总线上的数据进行采样,完成读取数据的操作。
第二个总线周期读取地址为20032H字节的内容。CPU发出的信号与第一个周期类似,区别在于T1状态CPU发出存储器地址为20032H,由于只需要读取低8位数据线上的数据(偶地址),BHE=1。
在CPU内部,从20031H读入的低位字节和从20032H读入的高位字节被拼装成一个字。
7.8086CPU有几种工作方式?各有什么特点?
8086/8088 CPU有两种工作模式:最大工作模式和最小工作模式。
所谓最小工作模式,是指系统中只有一个8086/8088处理器,所有的总线控制信号都由8086/8088 CPU直接产生,构成系统所需的总线控制逻辑部件最少,最小工作模式因此得名。最小模式也称单处理器模式。
最大模式下,系统内可以有一个以上的处理器,除了8086/8088作为“中央处理器”之外,还可以配置用于数值计算的8087“数值协处理器”、用于I/O管理的“I/O协处理器”8089。
各个处理器发往总线的命令统一送往“总线控制器”,由它“仲裁”后发出。
CPU 两种工作模式由MX /MN 引脚决定,MX /MN 接高电平,CPU 工作在最小模式;将MX /MN 接地,CPU 工作在最大模式。
8. 分析8086CPU 两个中断输入引脚的区别,以及各自的使用场合。
INTR 用于输入可屏蔽中断请求信号,电平触发,高电平有效。中断允许标志IF= 1时才能响应INTR 上的中断请求。
NMI 用于输入不可屏蔽中断请求信号,上升沿触发,不受中断允许标志的限制。CPU 一旦测试到NMI 请求有效,当前指令执行完后自动转去执行类型2的中断服务程序。
NMI 引脚用于连接CPU 外部的紧急中断请求,例如内存校验错,电源掉电报警等。INTR 引脚用于连接一般外部设备的中断请求。
9. 什么是时钟周期、总线周期、指令周期?它们的时间长短取决于哪些因素?
时钟周期:CPU 连接的系统主时钟CLK 一个周期的时间。CLK 信号频率越高,时钟周期越短。
总线周期:CPU 通过外部总线对存储器或I/O 端口进行一次读/写操作的过程称为总线周期。8086CPU 总线周期一般由四个时钟周期组成,存储器/IO 设备(接口)速度不能满足CPU 要求时,可以增加一个或多个时钟周期。
指令周期: CPU 执行一条指令的时间(包括取指令和执行该指令所需的全部时间)称为指令周期。指令周期的时间主要取决于主时钟的频率和指令的复杂程度,它也受到存储器或IO 设备接口工作速度的影响。
10. 在一次最小模式总线读周期中,8086CPU 先后发出了哪些信号?各有什么用处? T 1状态: IO /M 指出CPU 是从内存(1)还是从IO 端口(0)读取数据。随后CPU 从地址/状态复用线(A 19/S 6~A 16/S 3)和地址/数据复用线(AD 15~AD 0)上发出读取存储器的20位地址,对IO 端口访问时从AD 15~AD 0上发出16位地址。
为了锁存地址,CPU 在T 1状态从ALE 引脚输出一个正脉冲作为地址锁存信号。
如果需要读取高8位数据线上的数据(奇地址/读取一个字),BHE = 0。
为了控制总线收发器8286数据传输方向, R /DT = 0。
T 2状态: 读信号RD 开始变为低电平(有效),DEN =0,用来开放总线收发器8286。 T 3状态: CPU 检测READY 引脚信号。若READY 为高电平(有效),表示存储器或I/O 端口已经准备好数据,进入T 4状态;若READY 为低电平(无效),表示存储器或I/O 端口尚未准备好数据,插入一个或多个T W 状态,直到READY 变为高电平。
T 4状态:在T 3(T W )和T 4状态交界的下降沿处,CPU 对数据总线上的数据进行采样,完成读取数据的操作。
11. 结合指令“OUT 21H, AL ”,具体叙述最大模式“总线写周期”总线上的相关信号。 T 1状态:地址/数据复用线(AD 15~AD 0)上出现访问IO 端口的16位地址21H 。由于地址为奇数,需要通过高8位数据线访问端口,BHE = 0。
T 2状态:IOW = 0,表示本周期对IO 端口进行写操作。地址/数据复用线(AD 15~AD 0)上出现来自AL 的8位数据。
T 3状态:若READY 为高电平(有效),表示I/O 端口已经准备好接收数据。反之,表示I/O 端口尚未准备好接收数据,需要CPU 插入T W 周期进行等待,直到READY 出现高电平