微型计算机原理与接口技术 第2章 8086系统结构讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8088 CPU简介


8088 CPU是8086 CPU的姊妹版 8088 CPU的内部数据总线宽度是16位, 外部数据总线宽度是8位,所以8088 CPU称为准16位微处理器。 8088 CPU的外部地址总线的宽度为20位。
8088CPU与8086CPU的区别




8088的指令队列长度是4个字节,队列中只要出现一个 空闲字节,BIU就会自动访问存储器,取指令来补充队 列。 8088CPU中,BIU的总线控制电路与外部交换数据的总 线宽度,总线控制电路与专用寄存器之间的数据总线 宽度都是8位,而EU的内部总线是16位,这样对16位 数的读/写操作要两个读/写周期才能完成。 8088外部数据总线只有8条,所以分时复用的地址/数 据总线为AD7~AD0 8088中,用IO/M信号代替M/IO信号 8088中,只能进行8位数据传输,无BHE信号
DI
段寄存器
寄存 英文名 器名
CS DS ES SS
中文名
代码段寄存器 数据段寄存器 附加锻寄存器 堆栈段寄存器
用途
存放代码段段基地址 存放数据段段基地址,存放程 序中经常使用的数据 存放附加段段基地址,存放程 序中不经常使用的数据 存放堆栈段段基地址
Code segment
Data segment Extra segment Stack segment
8086 CPU寄存器结构(重点)

通用寄存器 指针和变址寄存器 段寄存器 指令指针寄存器 标志寄存器PSW
通用寄存器
寄存 英文名 器名
AX BX CX DX Accumulator Base address Counter Data register 中文名 累加器 基址寄 存器 计数器 数据寄 存器 用途 算术运算;在乘除运算中用来存放 操作数;和I/O设备之间传送信息 做通用寄存器用;在计算存储器地 址时,用作基址寄存器 做通用寄存器用;保存计数值 做通用寄存器用; DX:AX组合可表 示双字;DX也用来存放I/O端口地 址
第2章 8086系统结构

概述 8086CPU结构 8086存储器组织 8086系统配置
概述


网上评价:1978年,8086处理器诞生了。这 个处理器标志着x86王朝的开始,从8086开始, 才有了目前应用最广泛的PC行业基础。虽然从 1971年,英特尔制造4004至今,已经有32年 历史;但是从没有像8086这样影响深远的神来 之作。 微处理器的主要功能 微处理器结构受到的限制 16位微处理器的结构特点 8086CPU概况
指令执行部件

EU功能 EU结构 EU工作过程
EU功能

指令解码(Decode Instruction) 执行指令(Execute Instrunction)
EU结构



算术逻辑单元ALU:完成8位或16位二进 制运算,16位暂存器暂时存放操作数 标志寄存器:存放ALU运算结果特征 寄存器组:4个通用的16位寄存器AX、 BX、CX、DX;4个指针和变址寄存器BP、 SP、SI、DI EU控制器:取指令控制和时序控制部件
8086 CPU内部结构

8086 CPU结构框图 总线接口部件(BIU) 指令执行部件(EU)
通 用 寄 存 器
AX BX CX DX SP BP SI DI
8086 CPU结构框图
20位地址总线
Σ
数据 总线 16位
ALU数据总线 (16位) 暂存器
队列 总线 (8位)
CS DS SS ES IP 内部寄存器 指令队列
使用寄存器时注意

ห้องสมุดไป่ตู้
以上介绍的寄存器均为16位寄存器 通用寄存器AX、BX、CX、DX都可以拆分为两个8位寄 存器:AH和AL、BH和BL、CH和CL、DH和DL,“H”表 示高位字节,“L”表示低位字节 其他的寄存器不能拆分,BX寄存器如果作为指针使用, 也不能拆分 指令指针寄存器IP、标志寄存器PSW和堆栈指针SP的 内容只能由系统更改,用户不能更改 代码段寄存器CS和指令指针寄存器IP配对使用;堆栈 段寄存器SS和堆栈指针寄存器SP配对使用 用户只能用4个寄存器存放存储单元的偏移地址:SI、 DI、BX和BP BP寄存器在默认的情况下用于访问堆栈段
EU工作过程
1. EU从BIU的指令队列的输出端取指令 2. 进行指令译码 3. 若执行指令需要从存储器或I/O端口去取操作 数,则EU将操作数的偏移地址通过内部的16 位数据总线送给BIU,与段基地址一起,在 BIU的地址加法器中形成20位物理地址,申请 访问存储器或I/O端口,取得操作数送给EU 4. EU根据指令要求向EU内部各部件发出控制命 令,完成执行指令的功能。
总线 控制 电路 8086 总线
ALU
标志寄存器
EU 控制器
1 2 3 4 5 6 BIU
EU
总线接口部件

BIU功能 BIU结构 BIU工作过程
BIU功能



BIU是8086 CPU与外部(存储器和I/O接 口)的接口,提供16位数据总线和20位 地址总线,完成所有外部总线操作 形成20位物理地址 取指令、指令排队 读/写操作数 总线控制
标志寄存器PSW
寄存 器名 PSW 英文名 中文名 用途 标志位寄存器 Program 或 Status Word 程序状态字
存放条件码标志、控制标志和 系统标志
PSW格式:
15 11 10
OF DF
9 IF
8
7
6
4 AF
2 PF
0 CF
TF SF ZF
条件标志




条件标志用来记录程序中运行结果的状态信息,它们根据有关指 令的运行结果由CPU自动设置,这些状态信息往往作为后续条件 转移指令的转移控制条件,包括6位: OF:溢出标志,在运算过程中,如操作数超出了机器数的表示范 围,称为溢出,OF=1,否则OF=0 SF:符号标志,记录结果的符号,结果为负SF=1,否则SF=0 ZF:零标志,运算结果为0,ZF=1,否则ZF=0 CF:进位标志,进行加法运算时从最高位产生进位,或减法运算 从最高位产生借位CF=1,否则CF=0 AF:辅助进位标志:本次运算结果,低4位向高4位产生进位或借 位,AF=1,否则AF=0 PF:奇偶标志,用来为机器中传送信息时可能产生的代码出错情 况提供检验条件,当结果操作数中低8位1的个数为偶数时PF=1, 否则PF=0
指令指针寄存器
寄存器 英文名 名 IP 中文名 用途 在程序运行时,保存下一条将要执 行的指令的偏移地址,与CS联用确 定下一条指令的物理地址
Instruction 指令指 pointer 针
在内存中,指令和数据没有任何区别,都是二进制信息,CPU在工作的 时候把有的信息看作指令,有的信息看作数据。那么,CPU根据什么将 内存中的信息看作指令?CPU将CS:IP指向的内存单元中的内容看作指令, 因为,在任何时候,CPU将CS、IP中的内容当作指令的段地址和偏移地 址,用它们合成指令的物理地址,到内存中读取指令码,执行。如果说, 内存中的一段信息曾被CPU执行过的话,那么,它所在的内存单元必然 被CS:IP指向过。
8086存储器组织(重点)

8086存储器地址的分段 8086存储器的分体结构 堆栈
8086存储器地址的分段



在存储器中是以字节为单位存储信息的,每个存储单 元由唯一的地址来确定。 8086系统有20根地址线可寻址1MB字节的存储空间, 即对存储器寻址要20位物理地址,而8086为16位机, CPU内部寄存器只有16位,即只能存储16位地址。因 此8086系统把整个存储空间分成许多逻辑段,每段容 量不超过64KB(即65536字节)。 段和段之间可以是连续的,也可以是分开的或重叠的。 任何一个单元的实际地址,都是由段基地址和段内偏 移地址两部分组成。
BIU结构

16位段寄存器(4个)

CS:代码段寄存器 DS:数据段寄存器 ES:附加段寄存器 SS:堆栈段寄存器



16位指令指针寄存器IP:存放下一条将要执行 指令的偏移地址 20位物理地址加法器:将16位逻辑地址转换为 存储器的20位物理地址 6字节指令队列:预存6字节的指令代码 总线控制部件:发出总线控制信号
存储器地址分段示意图


分段的策略:把整个1M的地址空间分为65536X16的矩 阵,每一行16字节为一小段(paragraph)。如下所示: 00000 00001 …… 0000F 00010 00010 …… 0001F ……………………………… 12340 12341 …… 1234F ……………………………… FFFF0 FFFF1 …… FFFFF 最左边的一列就可以作为段的起始地址,而段寄存器是 16位的,无法存放20位的地址,所以在存放时,只考虑 最高16位,最低的4位均为0,不存放。
物理地址 段基地址16 偏移地址
举例



已知DS=10E4H, ES=10F4H, SS=21F0H, CS=31FFH, 画出此时存储器地址分段图 段寄存器DS装入数据12ABH,写出段的起始地 址和结束地址。 CS:IP的组合为34ABH:1230H,写出要执行指 令的存储器物理地址。 SS:SP的组合为2900H:4A00H,写出堆栈栈顶 的物理地址。 已知DS=101AH,BX=3200H,写出数据段中 该存储单元的物理地址。
控制标志



DF:方向标志,用在串处理指令中控制 处理信息的方向。 当DF=1时,每次操作后,SI和DI减小, 使串处理从高地址向低地址进行,用指 令STD设置 当DF=0时,每次操作后,SI和DI增大, 使串处理从低地址向高地址进行,用指 令CLD设置
系统标志


系统标志用于可屏蔽中断、程序调试等的控制。 TF:陷阱标志(单步标志),调试程序时,可 设置单步工作方式,TF=1时,CPU每执行完一 条指令,就自动产生一次内部中断,使用户能 跟踪程序进行调试 IF:中断标志,IF=1时,CPU响应可屏蔽中断; IF=0时,即使外部设备有中断申请,CPU也不 响应。STI指令使IF=1,CLI指令使IF=0
微处理器的主要功能


进行算术运算和逻辑运算 同存储器和I/O接口交流信息 少量暂存数据 寄存指令、指令译码、执行指令 提供整个系统所需的定时和控制信号 可响应I/O设备的中断请求
微处理器的主要功能(软件角度)


赋值运算 算术表达式、关系表达式和逻辑表达式 无条件转移、条件转移、循环 数组和其他数据结构 子程序 输入和输出
物理地址的形成



段基地址:存放在段寄存器(CS DS ES SS) 中的地址,表示段的起始。 偏移地址:相对于段的起始地址的偏移量, 可以用BX BP SI DI SP IP 存放。 逻辑地址:存储器的逻辑地址由段基地址和 偏移地址组成,程序设计时采用逻辑地址。 物理地址:存储器的绝对地址,范围为 00000H~FFFFFH,是CPU访问存储器的实际 寻址地址,按下式进行计算:
BIU工作过程
1. 2. 3. 4. 5. 取指令 指令排队,等待EU取指令 从存储器或I/O端口读写操作数 向存储器或I/O端口输出EU的运算结果 修改指令指针IP,指向下一条指令的偏移地 址。当EU执行转移、调用或返回指令时,则 BIU清除指令队列,从转移指令的新地址取得 指令,并立即送给EU执行,然后从后续的指 令序列中取指令填满队列
指针和变址寄存器
寄存 英文名 器名
SP BP SI Stack pointer Base pointer Source index Destination index
中文名 堆栈指 针
基址指 针 源变址 寄存器 目的变 址寄存 器
用途 存放堆栈栈顶的偏移地址,只能访问 堆栈栈顶的信息
可作为堆栈区中的一个基址以访问堆 栈中的信息,可以访问堆栈中任何位 置的信息 SI、DI单独使用时,同DS联用,用来 确定数据段中某一存储单元的地址; 在串处理指令中,SI和DS联用,DI和 ES联用,具有自动递增和自动递减的 功能,用于在DS和ES中寻址的目的
微处理器结构受到的限制

由于工艺技术和成本的限制,微处理器 的结构受到以下几个方面的限制:



引脚数限制 芯片面积限制 器件速度限制
8086 CPU概况


引脚数目:40 芯片封装类型:双列直插式 数据总线数目:16 地址总线数目:20 直接寻址的空间:220=1MB 主频:5MHz
相关文档
最新文档