8086/8088微处理器【微机原理】1

简介: 8086/8088微处理器【微机原理】1

前言

以下内容源自微型计算机原理(第四版)王忠民主编

8086寄存器结构【微机原理】

例题源于课堂PPT

8086寄存器结构例题【微机原理】

仅供学习交流使用

推荐文章:8086CPU详解

8086/8088微处理器

80x86微处理器简介

1.80x86微型计算机按CPU字长划分经历了哪几代?每代CPU的主频是多少?每 CPU有多少根地址引脚?理论上的存储器地址空间有多大?

2.为了满足微型计算机对存储器系统的高速度、大容量、低成本的要求,目前微机 统通常采用三级存储器组织结构。试说明三级存储器组织结构的组成与工作原理。

三级存储器组织结构,即由高速缓冲存储器Cache、主存和外存组成。
工作原理:当前正在执行的程序或使用的数据必须从外存调入主存后才能被CPU读取并执行,
将当前使用频率较高的程序和数据通过一定的替换机制从主存放入Cache,
CPU在取指令或读取操作数时,同时对Cache和主存进行访问,如果Cache命中,
则终止对主存的访问,直接从Cache中将指令或数据送CPU处理。由于Cache的速度比主
存快得多,因此,Cache的使用大大提高了CPU读取指令或数据的速度。

3.2.1 8086/8088内部结构

8086CPU内部结构框图如图3.2所示,从功能上讲可分为两大部分:总线接口单元BIU(Bus Interface Umit)和执行单元EU(Execution Unit)。

1.总线接口单元BIU

总线楼口单元BIU的功能是负责完成CPU与存储器或IO设备之间的数据传送。其具 体任务是:

①读指令——指令队列出现空字节(8088 CPU1个空字节,8086CPU2个空字节时, 从内存取出后续指令。BIU取指令时,并不影响EU的执行,两者并行工作,大大提高了CPU的执行速度,

②读操作数——EU需要从内存或外设端口读取操作数时,根据EU给出的地址从内 存或外设端口读取数据供EU使用。

③写操作数——EU的执行结果由BIU送往指定的内存单元或外设端口。


总线接口单元内有4个16位段寄存器,即代码段寄存器CS(Code Segment)、数据段寄 存器DSData Segmen)、堆栈段寄存器SS(Stack Segment)和附加数据段寄存器ES(Exma Ssegmenl),一个16位的指令指针寄存器IP(Instruction Pointer),一个20位的地址加法器,一个6字节指令队列缓冲器,一个与EU通信的内部寄存器以及总线控制电路等。下面对总线楼口单元中有关部件的功能作详细介绍。


1)段寄存器

886CPU的地址引脚有20根,能提供20位的地址信息,可直接对1M个存储单元进行访问,但CPU内部可用来提供地址信息的寄存器都是16位的,那么如何用16位寄存器实现20位地址的寻址呢?8086/8088采用了段结构的内存管理方法。


将指令代码和数据分别存储在代码段、数据段、堆栈段、附加数据段中,这些段的段 地址分别由段寄存器CS、DS、SS、ES提供,而代码或数据在段内的偏移地址则由有关寄 存器或立即数形式的偏移地址给出。


代码段寄存器CS存储程序当前使用的代码段的段地址。代码段用来存放程序的指令 代码。下一条要读取指令在代码段中的偏移地址由指令指针寄存器IP提供。数据段寄存器 DS用来存放程序当前使用的数据段的段地址。 一般来说,程序中所用到的原始数据、中间 结果以及最终结果都存放在数据段中。如果程序中使用了字符串处理指令,则源字符串也 存放在数据段中。堆栈段寄存器SS用来存放程序当前所使用的堆栈段的段地址。堆栈是在 存储器中开辟的一个特定区域(详见33.1节“堆栈操作”)。附加数据段寄存器ES用来存放 程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。


程序员在编写汇编语言源程序时,应该按照上述规定将程序的各个部分放在规定的段 内。每个源程序必须至少有一个代码段,而数据段、堆栈段和附加数据段则根据程序的需 要决定是否设置。


2)指令指针寄存器

指令指针寄存器IP用来存放下一条要读取的指令在代码段中的偏移地址。IP在程序运 行中能自动加1修正,从而使其始终存放的是下一条要读取的指令在代码段的偏移地址。 由于CS和IP的内容决定了程序的执行顺序,因此程序员不能直接用赋值指令对其内容进 行修改。有些指令能使IP和CS的值改变(如跳转指令)或使其值压入堆栈或从堆栈中弹出恢 复原值(如子程序调用指令和返回指令)。


3)20位地址加法器

8086/8088 CPU在对存储单元进行访问以读取指令或读/写操作数时,必须在地址总线 上提供20位的地址信息,以便选中对应的存储单元。那么,CPU是如何产生20位地址的呢?

CPU提供的用来对存储单元进行访问的20位地址是由BIU中的地址加法器产生的。 存储器中每个存储单元的地址可有以下两种表示方式:

(1)逻辑地址:其表达形式为“段地址:段内偏移地址”。段内偏移地址又称为“有效 地址”(EA,Effective Address)。在读指令时,段地址由代码段寄存器CS提供,当前要读取

指令在代码段中的偏移地址由指令指针寄存器段内偏移地址

IP提供,在读取或存储操作数时,根据具体操作,段地址由DS、ES或SS提供,段内偏移地段寄存器由指令给出。

(2)物理地址:CPU与存储器进行数据交换时在地址总线上提供的20位地址信息称为

物理地址。物理地址的形成过程如图3.3所示。




由逻辑地址求物理地址的公式为:

物理地址=段地址x10H+段内偏移地址


如假设当前(CS)=20A8H,(IP)=2008H,那么,下一条从内存中读取的指令所在存储 单元的物理地址为20A8Hx10H+2008H=22A88H。


4)指令队列缓冲器

条要执行的指令从内存单元读入指令队列。它们采用“先进先出”的原则,按顺序存协

节(对8086而言)或1个空字节(对8088而言)时,BIU就自动执行一次取指令周期,将下

并按顺序取到EU中去执行。


当EU执行跳转、子程序调用或返回指令时,BIU就使指令队列复位,并从指令给出

新地址开始取指令,新取的第1条指令直接经指令队列送EU执行,随后取来的指令将填入指令队列缓冲器。


指令队列的引入使得EU和BIU可并行工作,即BIU在读指令时,并不影响EU单

执行指令,EU单元可以连续不断地直接从指令队列中取到要执行的指令代码,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。

2.执行单元EU

执行单元EU不与系统外部直接相连,它的功能只是负责执行指令。执行的指令从B

的指令队列缓冲器中直接得到。执行指令时若需要从存储器或IO端口读写操作数,由

向BIU发出请求,再由BIU对存储器或I/O端口进行访问。EU由下列部件组成;

(1)16位算术逻辑单元(ALU):用于进行算术和逻辑运算。

(2)16位标志寄存器FLAGS:用来存放CPU运算结果的状态特征和控制标志。

(3)数据暂存寄存器:协助ALU完成运算,暂存参加运算的数据,

(4)通用寄存器:包括4个16位数据寄存器AX、BX、CX、DX和4个16位指针与变

址寄存器SP、BP与SI、DI。

(5) EU控制电路:它是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指

令,经过指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作。


88CPU内部结构与8086基本相似,两者的执行单元EU完全相同,其指令系统、

址方式及程序设计方法都相同,所以两种CPU完全兼容。区别仅在于总线接口单元BIU,归纳起来主要有以下几个方面的差异:


(1)外部数据总线位数不同。8086外部数据总线为16位,在一个总线周期内可

输入/输出一个字(16位数据);而8088外部数据总线为8位,在一个总线周期内只

输入/输出一个字节(8位数据)。

(2)指令队列缓冲器大小不同。8086指令队列可容纳6个字节,且在每一个总线周期中

从存储器取出2个字节的指令代码填入指令队列:而8088指令队列只能容纳4个字节,在一个机器周期中取出一个字节的指令代码送指令队列。

(3)部分引脚的功能定义有所区别,详见3.2.4节。



相关文章
|
芯片
8086/8088微处理器【微机原理】2
8086/8088微处理器【微机原理】2
406 0
|
8月前
基于51单片机的简单交通灯程序
基于51单片机的简单交通灯程序
98 2
|
小程序 芯片
基于51单片机的超声波测距(待改进)
基于51单片机的超声波测距(待改进)
122 0
|
8月前
|
IDE 开发工具
基于单片机的简易步进电机控制系统
基于单片机的简易步进电机控制系统
108 0
|
8月前
|
数据安全/隐私保护
C51单片机实现矩阵键盘密码锁
C51单片机实现矩阵键盘密码锁
【微机原理笔记】第 3 章 - 8086/8088的指令系统
【微机原理笔记】第 3 章 - 8086/8088的指令系统
1449 1
|
容器
基于51单片机的电话拨号报警器(2)
基于51单片机的电话拨号报警器(2)
131 0
|
算法 编译器 网络性能优化
基于51单片机的电话拨号报警器(1)
基于51单片机的电话拨号报警器(1)
234 0
基于51单片机的8八路抢答器设计
(1)主持人进行复位,依次显示8位选手的分数,8位选手分数显示结束后主持人方可按下开始按键; (2)主持人按下抢答开始按键,抢答者才可以开始抢答,数码管抢答倒计时10S; (3)抢答者按下按键,数码管显示抢答者的编号和答题剩余时间倒计时20S; (4)在20S内,抢答者答题正确,主持人按下加分按键,分数加一,答错主持人按下减分按键,分数减一(默认抢答者的初始分数为60)。
228 0