80X86微处理器

(一)知识范围

8086/8088CPU的内部结构和外部引线; 8086/8088CPU的工作方式;8086/8088CPU系统总线的形成;8086/8088的存储器结构;总线操作及时序。

(二)考核要求

  1. 掌握8086/8088CPU的功能构成及流水线技术,理解流水线管理规则。
  2. 掌握 8086/8088CPU寄存器的组成及其应用。
  3. 理解8086/8088CPU的内存分配,掌握实地址模式下的存储器地址变换方法。
  4. 掌握8086/8088CPU的引脚构成,理解其引脚复用的特性。

目录

存储器组织结构

Intel 8086微处理器

寻址空间和数据存储格式

寻址空间

数据存储格式

8086系统存储器结构

存储器的分段结构和物理地址的形成

存储器的分段结构

物理地址的形成

按信息特征分段存储

8086微处理器的内部结构

8086CPU的内部结构

8086CPU的寄存器结构

地址指针与变址寄存器

控制寄存器

标志寄存器FLAGS

8060总线的工作周期

总线的周期时序

8086中断系统

外部中断

不可屏蔽中断(NMI中断)

可屏蔽中断(INTR中断)

内部中断

8086微处理器外部基本引脚与工作模式

8086系统总线构成

两种模式下公用的引脚信号

地址总线、数据总线、状态信号

控制总线

其他信号


存储器组织结构

Intel 8086微处理器

  1. 8086 CPU是1位的第三代微处理器,其内部数据总线外部数据总线均16位。
  2. 8086具有20位地址总线,可寻址的内存地址空间达1M字节,可寻址的I/O地址空间为64K 字节。
  3. 8086有多重寻址方法、多级中断方法、多重数据处理形式、段式存储器结构、硬件乘除法运算电路。取指令和执行指令的操作并行运行,运行速度大大提高。
  4. 8086具有最小模式和最大模式,应用领域宽广,适应性强。
  5. 8086可方便地和数据处理器8087、I/O处理器8089或其他处理器组成多处理机系统,提高数据处理能力和输入输出能力。

寻址空间和数据存储格式

寻址空间

当存储器按字节编址时,若地址总线为n位,CPU寻址范围是字节。

例如: 8086CPU有地址总线20位,寻址能力为=1M字节

20位地址线,可寻址的地址范围为00000H~FFFFFH

数据存储格式

计算机中信息的单位有:位(bit )、字节(byte)、字(word)、双字(double word)等。

字节数据(byte): 8位,偶地址(地址的最低位=0),或奇地址=1)

字数据(Word):16位,存放在两个连续的字节单位中。

其中高8位存放在高地址字节(高字节),低8位存放在低地址字节(低字节),并规定将低字节的地址作为这个字的地址(字地址

 双字数据(double word):双字数据占用4个连续字节单元,并规定最低字节地址为双字的地址

数据的地址对齐

同一个存储器地址可以表示为:

字节单元地址、字单元地址、双字单元地址等(视指令具体情况)。将字单元安排在偶地址(xx.......xx0B),将双字单元安排在模4地址(xx.......xx00B)的做法,被称为“地址对齐(Align)”。

存储的数据如果对齐边界,则存取速度较快

8086系统存储器结构

 

存储器的分段结构和物理地址的形成

存储器的分段结构

由于8086中的地址寄存器都是16位的,用户不能直接使用20位的物理地址,编程是需要使用逻辑地址来寻址存储单元。

逻辑地址由两个16位数构成,其形式为:

段的起始地址:  段内的偏移地址

(16位段地址):(16位偏移量)

8086将存储空间分为多个逻辑段(Segment)来进行管理,要求:

段的20位的起始地址(xxxxxH)其低4位必须为0(xxxx0H),

所以可以将他们省略,然后用1个16位数来表示段的首地址。

每段长度限=64KB,所以段内偏移地址可以用一个16位数表示(xxxxH)1M最多可分为16个不重叠的段。

实际上,两个不同的逻辑段可以交叠,或者完全重叠

物理地址的形成

每个存储单元都有一个唯一物理地址(00000H~FFFFFH),20位二进制数,该地址在指令执行时由地址加法器形成,并进行硬件寻址。

地址加法器的具体做法:段地址左移4位,然后加上偏移地址就得到20位物理地址。

例如:7018:FE7F

CS=7018H,IP=FE1FE,

物理地址=7FFFFH

物理地址形成过程

用户编程时采用逻辑地址,其形式为:段的首地址:段内偏移地址   它们由两个16位的无符号数构成。

逻辑地址“1460H:100H”=物理地址14700H

一个逻辑单元可以多个逻辑地址,但只能有一个唯一的物理地址。

例如:物理地址:00200H

逻辑地址:0000H:0200H

逻辑地址:0020H:0000H

按信息特征分段存储

存储器可以划分为:程序区、数据区、堆栈区

程序段中存储程序的指令代码;数据段附加段中存储数据、中间结果和最后结果、堆栈段存储压入堆栈的数据或状态信息。

8086微处理器的内部结构

8086CPU的内部结构

8086CPU内部结构分为两部分:

总线接口部件BIU:总线接口单元BIU,负责控制存储器的读写。

控制部件EU:执行单元EU从指令队列中取出指令并执行。

特点:接口部分和执行指令分开进行,提高了速度。

8086CPU的内部结构

解读:

四个专用寄存器

SP:堆栈指针,其内容与堆栈段寄存器SS的内容一起,提供堆栈操作地址。

BP:基址指针,构成段内偏移地址的一部分。

SI:(Source Index),SI含有源地址的意思,产生有效地址或实际地址的偏移量。

DI:(Destination Index),DI含有目的地址的意思,产生有效地址或实际地址的偏移量。

算数逻辑单元ALU

主要是加法器,大部分指令的执行由加法器完成。

标志寄存器

16位字利用了9位,标志分为两类:

控制状态(6位):反映刚刚完成的操作结果情况。

控制标志(3位):在某些指令操作中起控制作用。

四个段寄存器:CS、DS、SS、ES

CS:管理代码段

DS:管理数据段

SS:管理堆栈段

ES:管理附加段

16位指令指针寄存器IP

IP中的内容是下一条指令对现行代码段基地址的偏移量。

6字节的指令队列缓冲器

指令队列共6字节,总线接口部分BIU从内存指令取来的总是放在指令队列中,执行部分EU从指令队列取指令,并执行。

8086CPU的寄存器结构

 数据寄存器

8086含4个16位数据寄存器,他们又可分为8个8位寄存器,

  • AX——AH,AL
  • BX——BH,BL
  • CX——CH,CL
  • DX——DH,DL

常用来存放参与运算的操作数或运算结果

数据寄存器特有的习惯用法

AX:累加器,多用来存放中间运算结果。所有I/O指令必须通过AX与接口传送信息。

BX:基址寄存器,常用于存放访问内存时的偏移地址。

CX:计数寄存器,用于在循环或串操作指令中存放循环次数或重复次数。

DX:数据寄存器,在32位乘除运算时,存放高16位数。在间接寻址的I/O指令中存放I/O端口地址

段寄存器

段寄存器为信息按特征分段存储带来方便

CS:16位的代码段寄存器,管理程序段

DS:16位的数据段寄存器,管理数据段

ES:16为的扩展段(附加段)寄存器,管理扩展段

SS:16位的堆栈段寄存器,管理堆栈段

地址指针与变址寄存器

SP:堆栈指针寄存器,内容为栈顶的偏移地址。

BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。

BX和BP在应用上的区别:

作为通用寄存器,二者均可用于存放数据

作为基址寄存器,BX通常用于数据段,一般与DS或ES搭配使用,BP则通常用于堆栈段,与SS搭配使用。

SI:源变址寄存器

DI:目标变址寄存器

变址寄存器常用于指令的间接寻址或变址寻址。

控制寄存器

1. 指令指针寄存器IP,其内容为下一条要执行的指令的偏移地址。

标志寄存器FLAGS

16位标志寄存器,用来存放运算结果的特征,其中7位没有定义,其余9位分成两类:

状态标志:表示运算后结果都状态特征它影响后面的操作,有6位:CF、PF、AF、ZF、SF和OF

 控制标志:用来控制CPU操作,有3个:TF、IF、DF

FLAGS寄存器
  • CF——进位标志:算数运算时有进位CF=1,无进位CF=0
  • PF——奇偶标志:运算结果中”1“的个数为偶数PF=1
  • AF——辅助进位标志:第3位向第4位有进位时AF=1
  • ZF——标志:运算结果为”0“则ZF=1
  • SF——符号标志:运算结果为负数是SF=1
  • OF——溢出标志:运算结果超出规定范围OF=1
  • IF——中断允许标志:IF=1中断允许
  • DF——方向标志:DF=0地址+1
  • TF——跟踪标志:TF=1为单步工作方式

8060总线的工作周期

首先要了解的概念

主频:CPU的工作效率

时钟周期:对主频进行分频后的工作时钟

总线周期:完成一次总线操作所需的时间。

在8088CPU中,CPU与内存或接口间进行通信,如将一个字节写入内存一个单元(或接口),或者从内存某单元(或接口)读一个字节到CPU,这种读/写的过程称为一个总线周期。

指令周期:一条指令从开始取指令到最后执行完毕所需的时间

总线的周期时序

一个总线周期正常情况下由4个时钟周期(T1-T4)组成,时钟周期由主频决定

空闲周期和等待周期

读、写、中断响应、总线保持与响应等待的总线周期时序

8086中断系统

  • 8086/8088可以处理256种不同的中断
  • 两类:内部中断、外部中断

中断源示意图

外部中断

8086CPU提供两种引脚 INTR、NMI 接受中断请求信号

不可屏蔽中断(NMI中断)

  • 中断类型码 2
  • 上升沿触发申请中断
  • 不受中断允许标志IF的控制与影响(即不可屏蔽),一旦NMI引脚出现中断请求,CPU在当前指令执行完后,必须立即响应。
  • 由计算机内部硬件出错而引发,一般用于处理紧急事情。PC机中用于内存奇偶娇颜出错和系统主要故障(如电源断电等)。

可屏蔽中断(INTR中断)

  • 外设申请的中断
  • 电平触发
  • 受中断允许标志IF控制

IF=1(指令STI),开中断,允许响应INTR中断

IF=0(指令CLI),关中断,禁止响应INTR中断

当外设对CPU有服务请求,会向INTR发送一个高电平信号,(见上图),并且中断允许标志IF=1时,CPU会在当前指令执行完后,响应可屏蔽中断。

8086CPU只有一个可屏蔽中断请求输入引脚,8086中断系统设计中断控制器(8259A)管理各种外设提出的中断请求。所有外设的中断请求信号都可送至8259A的中断请求输入端IRQ0~IRQ7任何一个,8259A选择其中优先级最高的中断请求,送至CPU的INTR引脚,向CPU申请可屏蔽中断。

可屏蔽中断源的中断类型码由8259A提供。

8259A可对多个可屏蔽中断源进行优先级控制,一片8259A可管理8级可屏蔽中断

内部中断

不需要外部硬件的支持,不受中断标志IF的影响,中断类型码或包含在指令中,或预先规定。

8086/8088内部有五种:

  • 除法出错中断
  • 断点中断
  • 单步中断
  • 溢出中断
  • 软件中断

8086微处理器外部基本引脚与工作模式

8086系统总线构成

最小模式:系统中只有8086一个微处理器,所有的总线控制信号均为8086产生,系统中的总线控制逻辑电路,减少到最少。

最大模式:用于大型(中型)8086系统中。系统总是包含有两个或多个微处理器,其中一个主处理器就是8086,还有协处理器8087、8089等。通常由专门的总线控制器(8288)产生总线控制信号。

8086采用双列直插式(Double In line PackageDIP)封装,具有40条引脚,使用+5V电源供电。

时钟频率有三种:5MHz(8086)、8MHz(8086-1)和10MHz(8086-2)。其引脚信号如下图括号内为最大模式时引脚名称。

两种模式下公用的引脚信号

8086引脚信号定义

所谓三态是指总线输出可以有三个状态:高电平、低电平、高阻状态。

当处于高阻状态时,该总线在逻辑上与所有连接负载断开。

地址总线、数据总线、状态信号

1. ~(2~16,39)

地址/数据复用总线。

双向、三态。

分时输出低16位地址信号及进行数据信号的输入/输出。

A15-A0:T1输出访问存储器或I/O的地址信息。

D15-D0:T2-T4输出与存储器和I/O设备交换数据信息。

2. A19/S6——A16/S3(35-38)

地址/状态复用线。

输出、三态。

分时输出地址的高4 位及状态信息。

A19-A16:T1输出访问存储器的20位地址的高4位地址A19-A16

S6-S3:T2-T4输出CPU的工作状态

  • 其中S6为0用以指示8086当前与总线连通
  • S5为1表明8086可以响应可屏蔽中断
  • S4、S3共有4个组合状态,用以指明当前使用的段寄存器。

 3. BHE/S7(34)

高8位数据总线有效/状态复用引脚。

三态输出

表示高8位数据线~上的数据有效和S7状态信号。

T2-T4状态输出S7状态信号,8086中无定义

偶地址单元数据通过数据总线低8位传输

奇地址单元数据通过数据总线高8位传输

控制总线

1. RD(32)

读信号

三态输出

低电平有效

RD=0,表示CPU正在读存储器或I/O端口

2. READY(22)

准备就绪信号

输入高电平有效

READY=1,表示CPU访问的存储器或I/O端口已准备好传送数据,若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个状态TW,直到READY=1为止

3. TEST(23)

测试信号,输入。

当CPU执行WAIT指令时,CPU每隔5个T状态进行一次测试。

当测试到TEST=1,则CPU重复执行WAIT指令,即CPU处于空闲等待状态,

直到测试到TEST=0时,等待状态结束,CPU继续执行后续指令,

4. RESET(21)

复位信号,输入。高电平有效

RESET信号至少要保持4个时钟周期

复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始执行。

5. INIR(18)

可屏蔽中断请求信号

输入、高电平有效

INIR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态取采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。

6. NMI(17)

不可屏蔽中断请求信号

输入、上升沿触发

该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。

7. MN/MX (33)

工作模式选择信号

输入

  • MN/MX=1,表示CPU工作在最小模式系统
  • MN/MX=0,表示CPU工作在最大模式系统

其他信号

1. VCC(40)GND(1,20)

电源、接地引脚

输入

8086采用单一的+5V电源

但有两个接地引脚

2. CLK(19)

时钟信号输入引脚

要求时钟信号的占空比为33%,即1/3周期为高电平,2/3周期为低电平。

3.8086/8088微处理器结构相关推荐

  1. 微机原理8086/8088——指令系统与寻址方式

    微机原理8086/8088概念系列 微机原理8086/8088--微型计算机组成 微机原理8086/8088--微处理器功能结构 微机原理8086/8088--内部寄存器 微机原理8086/8088- ...

  2. 第二章16位和32位微处理器(1)——8086的编程结构与最小模式

    微处理器的性能指标 (1)字长:CPU一次能够处理的二进制位数 (2)主频:代表CPU的运算速度 (3)核心数:指物理上,也就是硬件上存在着几个核心.比如,双核就是包括2个相对独立的CPU核心单元组, ...

  3. 8086和8088微处理器之间的区别

    尽管8086和8088处理器的体系结构和指令集相同,但是它们之间仍然存在差异. 下表列出了2个微处理器之间的区别: 序号 8086微处理器 8088微处理器 1 数据总线为16位. 数据总线为8位. ...

  4. 计算机应用技术自考知识点,自考计算机应用技术知识点:微处理器结构

    微处理器结构 (一)学习目的与要求 本章主要介绍典型16位微处理器8086的结构特点.通过对8086微处理器内部结构和引脚功能.指令周期的学习,掌握8086微处理器的总线结构.执行部件和总线接口部件的 ...

  5. 汇编语言之8086/8088指令系统

    Typist : Akame Qixisi / Excel Bloonow 在我学习汇编语言(基于8086)的过程中,遇到过一些想要某些操作却不知道指令的情况,所以在这里统一记录一下.如有错误或不同观 ...

  6. 8088微处理器主要引线

    本文作于2022.1.27,供本人加深理解 由于8088处理器主要工作在最小模式下,下文以8088工作在最小模式下为例介绍主要引线 8088CPU最小工作模式下的主要引脚信号 可以分为四组: ①完成一 ...

  7. 8086/8088 存储器分段概念

    这一节主要讲述8086/8088 存储器分段的概念. 目的 从8086 CPU开始采用了分段的方法管理存储器,只有充分理解存储器分段的概念和存储器逻辑地址和物理地址的关系,才能有助于我们掌握8086/ ...

  8. 微机笔记2——8086/8088指令系统

    8086/8088寻址方式 寄存器寻址 操作数存放在寄存器中 立即寻址 操作数存放在内存代码段 直接寻址 操作数存放在内存 寄存器间接寻址 操作数存放在内存 变址寻址 操作数存放在内存 基址加变址寻址 ...

  9. 【沧海拾昧】微机原理:8086/8088中断系统

    #C0305 沧海茫茫千钟粟,且拾吾昧一微尘 --<沧海拾昧集>@CuPhoenix [阅前敬告] 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 如有问题定为本集记录有谬, ...

  10. 8086/8088 CPU寄存器组

    作者:黑剑  出处:http://www.cnblogs.com/blacksword/ 8086/8088 CPU寄存器组 今天来回顾一下8086/8088 CPU寄存器组的知识.其实8086汇编还 ...

最新文章

  1. 【Qt】通过QtCreator源码学习Qt(三):linux平台的信号、程序崩溃处理
  2. 如何在计算机配置里面设置隐藏c盘,玩转电脑组策略(指定运行程序/隐藏C盘)
  3. cad文本改宋体字型lisp_CAD绘图员必须掌握的15个高能技巧,别人3天工作量你半天搞定!...
  4. python移动文件中某个内容_如果python中的某些文件类型,则移动文件并创建目录...
  5. java 解密 php_使用JAVA解密PHP解密
  6. 信息学奥赛C++语言: 奶牛乘法
  7. nodejs文件写入
  8. 如何运用模板之家做html,Flask框架如何使用HTML模板
  9. 配置私有仓库(使用registry镜像搭建一个私有仓库)
  10. 【读书笔记】—— 《从 0 到 1》
  11. Openssl学习——x509证书函数
  12. 文章目录---收藏不迷路
  13. 清音驱腐启鸿蒙,中华成语千句文解释.doc
  14. unll是什么意思_javascript中null是什么意思?
  15. EMERGENCYEUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEYRE NOT
  16. matplotlib 均值_matplotlib可视化箱线图
  17. SDTM submission - 如何处理split domain
  18. js中call()与apply()方法
  19. 那些入行的Python工程师们还好吗?
  20. python项目作业_期末作业.py · 光辉/python练手小项目 - Gitee.com

热门文章

  1. 联合查询(多表查询)
  2. 《西窗法雨》一天读完,怕不怕
  3. VS2010中打开项目中的Winform界面报“This method explicitly users CAS policy,which has been obsoleted by the ...”
  4. 常用的默认端口号(HTTP\HTTPS\FTP)
  5. AI机器人AI源码营销机器人电销机器人智能电话机器人拨号机器人语音机器人空号识别FreeSWITCH呼叫中心中间ipbxIPBX科大识别阿里识别语音识别语音翻译
  6. 架构师进阶篇-什么是架构师
  7. 小米电脑任务栏卡死点不动
  8. 前端Svelte框架初体验
  9. 创世神曲java官网_创世神曲内购官方手机版
  10. 邮箱 手机号 格式要求