作者:BerenCamlost
第二章 8086/8088处理器
2.1 内部组成结构
如上图所示,8086内部由两个独立的部分构成:总线接口单元(BIU)、执行单元(EU)
2.1.1 BIU
指令队列缓冲器
BIU使用指令队列电路来实现流水线操作,该队列为先进先出队列(FIFO),有两个指针,允许预取6个字节的指令代码。
段寄存器
CS——代码段寄存器
DS——数据段寄存器
SS——堆栈段寄存器
ES——附加段寄存器
指令指针寄存器IP
程序运行中自动加一修正,指向将原执行的下一条指令的偏移存储地址
2.1.2 EU
标志寄存器FR
有的地方也叫做PSW
CF:无符号数进行加减时,最高位产生进位或借位时置1
OF:有符号数进行运算时,产生溢出,即超出一个字节或一个字能够表示的范围时,置1。
一个简单的判断方法是:
OF=(最高位运算后进位状态)异或(次高位运算后进位状态);//书 p26下面
PF:低八位包含的1的个数为偶数,置1
AF:第三位向第四位有进位,置1
ZF:计算结果为0,置1
SF:符号位状态
//由程序员设定,利用STx,CLx指令
DF:串操作地址步进方向,1是从大到小,0是从小到大
IF:可屏蔽中断开关,置1为打开。进入中断后自动置0
TF:置1则CPU处于单步运行方式
通用数据寄存器
AX、BX、CX、DX四个16位的数据寄存器,这些寄存器在某些指令中有特殊的用途,将会在第三章中介绍。
SP、BP、SI、DI四个16位的指针和变址寄存器,SP称为堆栈指针,总是指向栈顶,BP称为基数指针,SI源变址指针,目的变址指针
2.2 存储器组织结构
2.2.1 存储器的分段结构
每类段可以由多个逻辑段组成,每个逻辑段的长度不得大于64KB
64KB是由偏移地址是16位二进制决定的,寻址空间最大为216B=64KB
2.2.2 物理地址和逻辑地址
物理地址=段地址(基地址)×16+偏移地址
2.3 CPU引脚及其功能
2.3.1 最大工作模式和最小工作模式
如上图,括号中的引脚是最小工作模式下的,所以在最大和最小模式切换后,部分引脚的功能是有变化的。
最大最小的区别
最大模式的控制总线信号由专用的总线控制器8288产生,最小模式所有的总线控制信号都是由CPU直接产生
工作于何种模式由MN/MX’(以下,上划线统一用引脚右上角加’表示)引脚决定
2.3.2 控制总线引脚信号
CLK:时钟信号输入
NMI:上升沿触发,非屏蔽中断输入端
INTR:高电平有效,可屏蔽中断请求输入端
RD’:输出,低电平有效,读取指令
WR’:输出,低电平有效,写入指令
M/IO’:1:存储器操作;0:IO口操作
READY:输入,高电平有效,
1. 每个总线周期的T3状态对READY信号采样,
2. 如果没有准备好就加入一个TW状态,
3. 在TW末尾继续对READY采样,如果还没准备好就一直加。
TEST’:输入,低电平有效
1. 每隔5个时钟周期重复检测该信号,
2. 当检测到该信号为低电平时,等待状态结束。
RESET:输入,高电平有效,复位信号
1. 高电平宽度至少大于4个时钟周期。
2. 当信号有效时,CPU结束当前操作,并对CPU内的标志寄存器, IP, DS, SS, ES及指令队列清零,
3. 而将CS设置为FFFFH, 当复位信号变为低电平时,CPU从FFFF0H处开始执行程序。
BHE’/S7:BHE和A0信号组合使用来选择读取高8位(奇地址)或者低8位(偶地址)
BHE’A0操作数据引脚00从偶地址开始读写一个字(16位)AD15~AD0
10从偶地址单元或端口读写一个字节(8位)AD7~AD0
01从奇地址单元或端口读写一个字节(8位)AD15~AD8
01从奇地址单元开始读写一个字(16位)(在第一个总线周期,将低8位数据送至AD15~AD8,AD15~AD8
10在第二个总线周期,将高8位数据送至AD7~AD0。在CPU内部进行调整AD7~AD0
INTA’:输出,低电平有效
当外设向CPU申请可屏蔽中断INTR,CPU如果允许中断,则连续发出两个负脉冲给外设。第一个负脉冲通知外设已受理中断;外设在第二个负脉冲时向数据总线上发送中断类型码。
ALE:输出,高电平有效,地址数据复用线的地址选择
DEN’:输出,低电平有效,地址数据复用线的数据选择
DT/R’:数据收发方向控制端,1:发送;0:接受
HOLD:输入,高电平有效,看下面
HLDA:输出,高电平有效
其他模块向8086发送占用总线的请求HOLD信号,如果CPU允许让出总线,当前周期结束后,将总线浮空,同时发出HLDA信号。
2.4 典型时序分析(背过图)
2.4.1 最小模式下的读周期
T1:地址上线,ALE下降沿锁存地址信号
T2:AD0~AD15为高阻,为输入数据作准备;A19 ~A16变为S3 ~S7;注意DEN’的状态和数据信号不一致
T3: D15~D0到数据总线,CPU获得数据。
T4: 数据消失,控制信号复位,为下一个总线周期做准备
如果在T3状态,READY为低电平,则在T3后插入Tw,控制信号及数据信号不变。
2.4.2 最小模式下的写周期
T1:地址A0~A19上线,ALE : 下降沿锁存地址
T2: A19~A16变为S3 ~S7;DEN’有效,打开数据总线;D15 ~D0由CPU送至数据总线
2.5 典型例题
(1)指令队列的作用是_________。
A) 暂存操作数地址 B) 暂存操作数
C) 暂存指令地址 D) 暂存预取指令
(2)8086CPU经加电复位后,执行第一条指令的地址是(FFFF0H)。
(3)在T2、T3、Tw、T4状态时,S6为_______,表示8086/8088当前连在总线上。
【答案】:低电平
(4)某微处理器的主频为20MHz,由2个时钟周期组成一个机器周期,设平均3个机器周期可完成一条指令,其时钟周期和平均运算速度分别为________________。
【答案】:50ns,3.33MHz
【解析】:时钟周期即1/CLK=1/20M=50ns;平均运算速度即完成指令的频率,即CLK/(2*3)=3.33MHz
(5)在8086的数据操作中,与总线宽度有关的控制信号是______。
A)LOCK B) HLDA C) WR及RD D) BHE
【解析】:BHE‘是高8位数据总线允许信号
(6) 8086CPU可访问的存储器的空间为1MB,实际上分奇数存储体和偶数存储体两部分,对于奇数存储体的选择信号是________,对于偶数存储体的选择信号是_______,对于每个存储体内的存储单元的选择信号是___________。
【答案】:BHE’,A0,A1~A19
2.6 勘误
2.3.2节第10点,表格中第二行第二列原先为1,现在已经改成0.
本文地址:https://blog.csdn.net/weixin_43830248/article/details/85957812