53
第 2 第 80X86 第第第第 第第第第 第第 CPU 第第第第第第第第第第第 第第 CPU 第第第第 第第第第 / 第第第第第第第第第第第第 第第第第第第第第第 ,; 第第 CPU 第第第 / 第第第第第第第 8086/8088CPU 第第第第 第第 / 第第第第 CPU 第第第 / 第第第

第 2 章 80X86 微处理器

  • Upload
    azizi

  • View
    118

  • Download
    0

Embed Size (px)

DESCRIPTION

第 2 章 80X86 微处理器. 本章重点: 掌握 CPU 内部寄存器的结构与功能,了解 CPU 引脚功能; 了解最小 / 最大模式的概念和系统组建,了解系统总线形成; 理解 CPU 总线读 / 写时序。 本章难点: 8086/8088CPU 引脚功能; 最小 / 最大模式; CPU 总线读 / 写时序。. 主 编 : 马争 副 主 编 : 汪亚南 作 者 : 石建国 , 师向群 , 孟庆元 电子制作 : 孟庆元 , 李佃宝. 2 . 1 微处理器的性能指标和技术特点 2.1.1 微处理器的主要性能指标. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 2 章 80X86 微处理器

第 2 章 80X86 微处理器

本章重点: 掌握 CPU 内部寄存器的结构与功能,了解 CPU 引

脚功能; 了解最小 / 最大模式的概念和系统组建,了解系统

总线形成; 理解 CPU 总线读 / 写时序。本章难点: 8086/8088CPU 引脚功能; 最小 / 最大模式; CPU 总线读 / 写时序。

Page 2: 第 2 章 80X86 微处理器

主 编 : 马争 副 主 编 : 汪亚南 作 者 : 石建国 , 师向群 , 孟庆元 电子制作 : 孟庆元 , 李佃宝

Page 3: 第 2 章 80X86 微处理器

2 . 1 微处理器的性能指标和技术特点 2.1.1 微处理器的主要性能指标

1 、主频 主频也叫时钟频率,单位是 MHz ,用来表示 CPU 的

运算速度。 CPU 的主频=外频 × 倍频系数。2 、外频 外频是 CPU 的基准频率,单位也是 MHz 。 CPU 的

外频决定着整块主板的运行速度。在台式机中,所说的超频,都是超 CPU 的外频,一般情况下, CPU 的倍频都是被锁住的。

3 、倍频系数 倍频系数是指 CPU 主频与外频之间的相对比例关系。

Page 4: 第 2 章 80X86 微处理器

4 、位和字长 位:在数字电路和计算机技术中采用二进制,代码

只有“ 0” 和“ 1” ,其中无论是 “ 0” 或是“ 1” 在 CPU 中都是一“位”。

字长:计算机技术中对 CPU 在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。

5 、高速缓存 Cache 高速缓存大小也是 CPU 的重要指标之一,而且缓存

的结构和大小对 CPU 速度的影响非常大。

Page 5: 第 2 章 80X86 微处理器

6 、 CPU 内核电压和 I/O 工作电压 从 586CPU 开始, CPU 的工作电压分为内

核电压和 I/O 电压两种,通常 CPU 的核心电压小于等于 I/O 电压。

7 、指令集和扩展指令集 CPU 依靠指令来计算和控制系统,每款 CPU

在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是 CPU 的重要指标,指令集是提高微处理器效率的最有效工具之一。

Page 6: 第 2 章 80X86 微处理器

2.1.2 、新一代微处理器的技术特点

1 、超流水线和超标量技术 流水线是 Intel 首次在 486 芯片中开始使用的。流水

线的工作方式就象工业生产上的装配流水线。超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。

超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。

Page 7: 第 2 章 80X86 微处理器

2 、独立的指令 cache 和数据 cache 80486 片内有 8KB 的 Cache ,而 Pentium 有 2 个

8KB 的 Cache ,指令和数据各使用一个 Cache ,使 Pentium 的性能大大超过 80486 微处理器。

3 、重新设计的浮点运算单元 Pentium 的浮点单元在 80486 的基础上进行了彻底

的改进,每个时钟周期能完成一个或两个浮点运算。4 、分支预测 循环操作在软件设计中使用十分普通,而且每次在

循环中对循环条件的判断占用了大量的 CPU 时间,为此, Pentium 提供一个称为分支目标缓冲器 BTB( BranchTargetBuffer )的小 Cache 来动态地预测程序分支,提高循环程序运行速度。

Page 8: 第 2 章 80X86 微处理器

2 . 2 8086/8088 微处理器内部结构2 . 2 . 1 8086/8088 微处理器的内部结构

8086CPU 的内部结构框图如图所示。从功能上讲,它由两个独立的逻辑单元组成,即执行单元 EU 和总线接口单元 BIU 。

1 .执行单元 EU 执行单元 EU 中的各部件通过一个 16 位的算术逻辑

单元( ALU )总线连接在一起,在内部实现快速数据传输。

Page 9: 第 2 章 80X86 微处理器

8086CPU 的内部结构框图

Page 10: 第 2 章 80X86 微处理器

2 .总线接口单元 BIU 总线接口单元 BIU 的功能是根据执行单元 EU 的请求,负责完成 CPU 与存储器或 I/O 设备之间的数据传送。

3 .执行部件 EU 和总线接口部件 BIU 的动作管理由于总线接口单元 BIU 和执行单元 EU 两部分是按

流水线方式并行工作的,在 EU 执行指令的过程中,BIU可以取出多条指令,放进指令流队列中排队。这样,当 EU 执行完一条指令后,就可以立即执行下一条指令,从而减少了 CPU 为取指令而等待的时间,提高了运算速度。

Page 11: 第 2 章 80X86 微处理器

2 . 2 . 3 8086/8088CPU 内部寄存器

8086/8088CPU 内部有 14 个 16 位寄存器,为了便于说明,一般又把它们分为 3 个组。

Page 12: 第 2 章 80X86 微处理器

图 8086/8088CPU 的寄存器结构

Page 13: 第 2 章 80X86 微处理器

1 .通用寄存器 通用寄存器可分为两组:数据寄存器和地址指针与变址寄存

器。( 1 )数据寄存器 AX—AH (高)、 AL (低)累加器 ADD BX—BH (高)、 BL (低)基址寄存器 BASE CX—CH (高)、 CL (低)计数器 COUNT DX—DH (高)、 DL (低)数据寄存器 DATA( 2 )地址指针和变址寄存器 这组寄存器在功能上的共同点是,在对存储器操作数据寻址

时,用于形成 20 位物理地址码的组成部分。 BP-- 基数指针寄存器

SP ( StackPointer )堆栈指针和 BP ( BasePointer )基址指针,通常用来作为 16 位地址指针。

SI ( SourceIndex )和 DI ( DestinationIndex )变址寄存器用来存放段内偏移地址的全部或一部分。

Page 14: 第 2 章 80X86 微处理器

2 .段寄存器 CS--16 位的代码段寄存器 DS--16 位的数据段寄存器 ES--16 位的附加(扩展)段寄存器 SS--16 位的堆栈段寄存器3 .控制寄存器( 1 )指令指针 IP 相当于程序计数器 PC ,用于控制程序中指令的执行顺序。

一般情况下,每取一次指令码, IP 就自动加 1 ,从而保证指令的顺序执行。 IP 实际上是指令机器码存放单元的地址指针,IP 的内容可以被转移类指令强迫改写。

( 2 )标志寄存器 F 8086/8088CPU 设立了一个 16 位的标志寄存器,共 9 个标志。其中 6 个是状态标志, 3 个是控制标志。

Page 15: 第 2 章 80X86 微处理器

①CF ( CarryFlag )进位标志。如果作加法时最高位(对字节操作是 D7 位,对字操

作是 D15 位)产生进位或作减法时高位产生借位,则CF = 1 ,否则 CF = 0 。

②PF ( ParityFlag )奇偶标志。如果操作结果的低 8 位中含有偶数个 1 ,则 PF = 1 ,否则 PF = 0 。

③AF ( AuxiliaryCarryFlag )辅助进位标志。如果在作加法时 D3 位向 D4 位的进位,则 AF = 1 ,否则 AF = 0 。这个标志用于实现 BCD 码算术运算结果的调整。

④ZF ( ZeroFlag )全零标志。如果运算结果各位都为零,则 ZF = 1 ,否则 ZF = 0 。

Page 16: 第 2 章 80X86 微处理器

⑤SF ( SignFlag )符号标志。它总是和结果的最高位(字节操作时是 D7 ,字操

作时是 D15 )相同。因为在补码运算时最高位是符号位,所以运算结果为负时, SF = 1 ,否则 SF =0 。

⑥OF ( OverflowFlag )溢出标志。当进行带符号的补码运算时,算术运算的结果超出

了机器所能表达的带符号数的范围,就会产生溢出,这时溢出标志位 OF = 1 ;若 OF = 0 ,表示运算结果无溢出发生。

控制标志是一种用于控制 CPU 工作方式或工作状态的标志。

Page 17: 第 2 章 80X86 微处理器

①DF ( DirectionFlag )方向标志。 方向标志 DF 用于控制字符串操作指令的步进方向,当 DF = 1 时,字符串操作指令将从高地址到低地址的方向对字符串进行处理;若 DF = 0 时,则相反。

②IF ( InterruptEnableFlag )中断允许标志。它是控制可屏蔽中断的标志,若 IF = 1 ,表示允许

CPU接受外部从 INTR 引线上发来的可屏蔽中断请求信号;若 IF = 0 ,则禁止。 IF 的状态不影响非屏蔽中断( NMI )请求,也不影响 CPU 响应内部的中断请求。

③TF ( TrapFlag )陷阱标志或单步操作标志陷阱标志是为了调试程序而设置的。若 TF = 1 ,则

使 8086/8088CPU 处于单步工作方式;当 TF = 0时, CPU正常执行程序。

Page 18: 第 2 章 80X86 微处理器

2 . 3 8086/8088CPU 的外部引脚及功能

2 . 3 . 1 8086/8088CPU 的外部引脚

8086/8088CPU均采用双列直插式的封装形式,具有 40 条引脚。

Page 19: 第 2 章 80X86 微处理器

8086/8088 外部引脚图

Page 20: 第 2 章 80X86 微处理器

2 . 3 . 2 8086/8088CPU 的工作模式

8086/8088CPU 有两种工作方式:最大模式( MX )和最小模式( MN )。最小模式适用于单微处理器组成的小系统,系统中只有一个 CPU ;最大模式适用于多微处理组成的大系统,系统中含有 2个或 2 个以上的 CUP ,其中一个主处理器,其它为协处理器。

Page 21: 第 2 章 80X86 微处理器

1 .地址/数据总线 AD15~ AD0 (双向、三态)这是分时复用的存储器或 I/ O端口和数据总线。传送地址时三态输出,传送数据时可双向三态输入/输出。

2 .地址/状态线 A19/ S6~ A16/ S3 (输出、三态)

这些引线也是采用多路开关的分时输出,在存储器操作的总线周期的第一个时钟周期( T1状态)时,输出 20 位地址的高 4 位( A16~ A19 ),而在其他的时钟周期,输出状态信号。 S3 和 S4 表示正在使用的是哪个段寄存器 ,S5 指示 IF 的当前状态, S6则输出低电平( "0" ),以表示 8086/8088当前连在总线上。

Page 22: 第 2 章 80X86 微处理器

3 .控制总线 ( 1 )总线高字节允许/状态, BHE/ S7 (输出、三态) 在总线周期的第一个时钟周期,输出总线高字节允许信号 BHE ,

其余时钟周期,输出状态 S7 ,但目前 S7并没能定义。若 BHE= 1 ,表示数据传送只在 AD0~ AD7 上进行。

对于 8088 ,不需要 BHE信号。该引脚表示 SS0 ,它在最小模式中表示状态,而在最大模式时它始终为高电平( "1" )。

( 2 )读控制信号线(输出、三态) 当 RD 有效(低电平时),表示 CPU正在进行读存储器或读 I/ O端口的操作。到底是对内存单元还是对 I/ O端口读取数据,取决于 M/ IO ( 8086 )或 IO/M ( /8088 )信号。

( 3 )准备好信号 READY (输入) 它是由被访问存储器或 I/ O端口发来的响应信号。当 READY

= 1 时,表示所寻址的存储单元或 I/ O端口已准备就绪,马上就可以进行一次数据传送;当 READY = 0 时,表示所寻址的存储单元或 I/ O端口尚未准备就绪,要求 CPU自动插入一个或几个 TW 等待状态,直到 READY 线出现高电平才进行数据传送。

Page 23: 第 2 章 80X86 微处理器

( 4 )等待测试信号 TEST (输入) 这个测试信号是由WAIT 指令来检查的。当 CPU 执行 WAIT

指令时,每隔 5 个时钟周期对该线的输入进行一次测试;若TEST = 1 时,  CPU停止取下一条指令而进入等待,重复执行 WAIT 指令,直至 TEST = 0 。

( 5 )可屏蔽中断请求信号 INTR (输入) 若 IF = 1 (即中断未被屏蔽)时,则 CPU 响应中断,并且

CPU 通过执行中断响应周期转去执行中断服务程序;若 IF= 0则中断被屏蔽。

( 6 )非屏蔽中断请求信号 NMI (输入) ( 7 )复位信号 RESET (输入) 复位信号 RESET将使 8086/8088CPU 立即结束它的当前操

作。 CPU 要求复位信号至少要保持高电平 4 个时钟周期,才能结束它正在进行的操作。

Page 24: 第 2 章 80X86 微处理器

( 8 )系统时钟 CLK (输入)它为微处理器提供基本的定时脉冲。 ( 9 )最小/最大模式信号MN/MX (输入)当MN/MX 引脚接+ 5V 时,则 CPU 工作于最小

模式;若该引脚接地时,则 CPU 工作于最大模式。 ( 10 )其他控制信号( 24~ 31 )引脚这些控制线的性能将根据控制线 MN/MX 所处的状态而确定。

4 、电源线 VCC 和地线 GND 电源线 VCC接入的电压为+ 5V±10%,有两条地

线 GND ,均应接地。

Page 25: 第 2 章 80X86 微处理器

2 . 3 . 3 8086CPU 与 8088CPU 的区别

8086 是 16 位数据总线,而 8088 是 8 位数据总线,在处理一个 16 位数据时, 8088需要二步操作而 8086 只需要一步操作;

引脚功能有所不同, 8086 的 M/IO 高电平为存储器操作,低电平为外设 IO 操作, 8088则正好相反;

由于 8088 只有 8 位数据线,因此没有 BHE 引脚。

Page 26: 第 2 章 80X86 微处理器

2 . 4 8086/8088CPU 系统结构

2 . 4 . 1 8086/8088CPU 的总线周期 1 .总线周期

通常把 8086/8088CPU经外部总线对存储器或 I/ O端口进行一次数据的输入或输出过程,称为总线操作。而把执行该操作所需要的时间,称为总线周期或总线操作周期。

8086/8088CPU 的总线周期至少由 4 个时钟周期组成。

Page 27: 第 2 章 80X86 微处理器

图 8086/8088 的总线周期

Page 28: 第 2 章 80X86 微处理器

2 .空闲状态 TI ( IdleState ) 在两个总线周期之间,存在着 BIU不执行任何操作的时钟周期,这些不起作用的时钟周期称为空闲状态,

3 .等待状态 TW ( WaitState )

Page 29: 第 2 章 80X86 微处理器

2. 4. 2 8086/8088CPU最小模式时的系统结构 1 . 8086/8088CPU 最小模式时的引脚功能 所谓最小模式,就是在系统中只有 8086/8088 一个 CPU ,

而所有的总线控制信号都由 CPU直接产生,因此系统中的总线控制电路被减到最少。

在最小模式下的各引脚定义如下: INTA :中断响应信号 ALE : 地址锁存允许信号 DEN : 数据允许信号 DT/R :数据收发信号 M/IO :存储器 /输入输出控制信号 WR : 写信号 HOLD :总线保持请求信号 HLDA :总线保持响应信号

Page 30: 第 2 章 80X86 微处理器

2 . 8086/8088 最小模式下连接的特点 ( 1 ) MN/MX端接 +5V ,决定了 8086/8088 工作

在最小模式。 ( 2 )有一片时钟发生器 8284A ,作为时钟发生器。 ( 3 )有三片 8282 或 74LS373 ,用来作为地址锁

存器。 ( 4 )当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,要用两片 8286/8287 作为总线收发器。

3 . 8086/8088CPU 最小模式时系统的总线结构 当把 8086/8088 的 33 脚 MN/MX接 +5V 时, 8086

/8088CPU 就处于最小工作方式了。

Page 31: 第 2 章 80X86 微处理器

图 8086CPU 最小模式时的系统配置示意图

Page 32: 第 2 章 80X86 微处理器

2 . 4 . 3 8086/8088 最大模式时的系统结构 而最大模式是相对最小模式而言的,此时系统中有

两个或多个微处理器,其中有一个是主处理器 8086/8088 ,其它的处理器称为协处理器,它们协助主处理器工作。

1 . 8086/8088 最大模式时的引脚功能 最大模式时 ,8086/8088 CPU不直接提供用于存储器

或 I/ O端口读写命令等控制信号,而是将当前要执行的总线操作类型编码为 3 个状态位( S0 、 S1 、S2 )输出,由总线控制器 8288CPU 对 3 个状态位信息进行译码,产生相应的控制信号。而 24~ 31控制引脚的其余引脚提供 8086/8088CPU 最大模式时系统所需的其他信息。

Page 33: 第 2 章 80X86 微处理器

2 .最大模式下的连接特点 ( 1 )最大模式下多了 8288 总线控制器。 ( 2 )在最大模式系统中,一般还会有中断优先级管理部件。 3 . 8086/8088CPU 最大模式时系统总线结构 如果将 8086/8088 的 MN/MX接地, CPU 就工作在最大模式

了。 在最大的模式系统中需要总线控制器来产生总线控制信号,因为最大模式系统包含有多个处理器,各个处理器之间需要共享总线,就必须解决主处理器和协处理器之间的协调工作问题。总线控制器 8288 就是用来完成这种功能的。

4 .总线控制器 8288 最大模式系统与最小模式系统的主要区别是增加了总线控制

器 8288 ,使总线控制功能更加完善。

Page 34: 第 2 章 80X86 微处理器

图最大模式时的系统配置示意图

Page 35: 第 2 章 80X86 微处理器

2 . 5 8086 的时序 2 . 5 . 1 8086CPU 最小模式时的总线时序 1 .学习时序的目的深入分析典型的操作时序其目的在于: ( 1 )深入理解微处理机的内部操作原理; ( 2 )有利于在编程序时适当选用指令,以缩短指令

的存储空间和指令的执行时间; ( 3 )有助于更好地解决 CPU 与存储器以及各种外

设之间的时序配合问题; ( 4 )当微型机用于实时控制时,必须估计 CPU 完

成操作所需的时间,以便与控制过程相配合。

Page 36: 第 2 章 80X86 微处理器

典型的 8086 总线时序

Page 37: 第 2 章 80X86 微处理器

2 . 8086CPU 最小模式时的总线周期时序

( 1 )写总线周期时序

Page 38: 第 2 章 80X86 微处理器

8086 最小模式下的总线写操作时序

Page 39: 第 2 章 80X86 微处理器

( 2 )读总线周期时序 最小模式下的总线读操作时序

Page 40: 第 2 章 80X86 微处理器

( 3 )中断响应周期时序 典型的 8086 中断时序图

Page 41: 第 2 章 80X86 微处理器

2 . 5 . 2 8086CPU 最大模式时的总线时序

最大模式下的时序与最小模式有所不同,这里不再详述,只是与最小模式下的时序进行比较。

Page 42: 第 2 章 80X86 微处理器

1 .读总线周期与写总线周期时序 与最小模式时的不同之处有 3 点: 第一,用于 8282 锁存器入 8286收发器的控制信号、读写

控制信号和 INTA信号在最大模式系统中均由 8288 总线控制器根据 CPU输出的 3 个状态位 S0 、 S1 、 S2 产生;

第二,最小模式系统下的 M/ IO 、 RD 和 WR信号由存储器读命令 MRDC , I/ O 读命令 IORC ,存储器写命令 MWTC ,先行存储定命令 AMWC , I/ O 写命令 IOWC 和先行 I/ O 写命令 AIOWC 代替;

第三, 8288输出的数据允许信号 DEN 的极性与最小模式下CPU 产生的 DEN 相反,使用时经反相加到 8286 的 OE端。

2 .中断响应周期时序 在最大模式时, INTA由 8288输出。在中断响应周期中,除了从第一个总线周期的 T2到第二个总线周期的 T2 ,在 LOCK 引脚上输出低电平信号外,其他均与最小模式时的中断响应周期时序一致。

Page 43: 第 2 章 80X86 微处理器

2 . 6 8086/8088 的存储器组织

存储器的基本存储单元是一个二进制位( bit ),每 8 位组成一个字节 (Byte) ,每相邻的 2 个字节可组成一个字( 16 位)。

存储器以字节为单位存储信息。为区别不同的字节存储单元,每个单元都被指定一个唯一的编号,称为该单元的物理地址(简称 PA )。地址编号从 0开始,按顺序加 1 ,一般用十六进制数表示。因此PC 机的内存是以字节单元为单位对内存进行编址。

Page 44: 第 2 章 80X86 微处理器

2 . 6 . 1 8086/8088 的存储器地址空间

8086/8088地址线有 20根,存储器的最大存储空间为 1MB ( 220 ),因此存储器地址范围为 00000H~ FFFFFH

Page 45: 第 2 章 80X86 微处理器

8086 存储空间

Page 46: 第 2 章 80X86 微处理器

1 .存储器分段与 8086 存储空间 8086/8088 CPU 的寄存器是 16 位,最大值为 FFFF即 64K ,而 8086/8088 的内存最大可达 1M ,显然用一个寄存器不能寻找大于 64K 的地址,因此采用了段地址加偏移地址的寻址方式 CS : IP ,这样最大寻址范围扩大到 FFFFF ,即 1MB ,从而满足了早期 DOS 操作系统的需要。

分段方法:把 1MB 内存划分成若干个存储区域,每个区域称为一个逻辑段(每个段都在一个连续的存储区域内,容量最大 64KB )。 8086/8088 规定每个段的段起始地址必须能被 16 整除,其特征是: 20 位段起始地址的最低 4 位为 0 (用 16 进制表示为××××0H )。

Page 47: 第 2 章 80X86 微处理器

2 .存储器单元物理地址的形式 ( 1 )存储单元地址 段基址:一个逻辑段的起始地址,形如 XXXXH 。 偏移地址:段内一个存储单元到达段地址的距离( 16 位)。 物理地址 PA :存储单元的实际地址( 20 位)。 段基址和偏移地址是逻辑地址,即在程序指令中引用和操作

的地址;物理地址是在 20 位地址总线上产生的地址。 ( 2 )存储单元物理地址的计算 物理地址=段基址 ×10H+偏移地址 指令单元地址= CS×10H+ IP 堆栈操作单元地址= SS×10H+ SP/BP 数据单元地址= DS×10H+地址表达式 例:某单元的逻辑地址为 4B09H : 5678H ,则该存储单元

的物理地址为:物理地址( PA ) =段基址 ×10H+EA=4B09H×10H+5678H=4B090H+5678H=50708H

一个存储单元,可以用不同的逻辑地址表示,但其物理地址是唯一的。

Page 48: 第 2 章 80X86 微处理器

2.5.3 8086/8088 CPU 系统中的部分系统物理地址空间

1 、部分系统专用存储空间 中断矢量区: 00000H~003FFH共 1K 字节,用以存放 256 种中断类型的中断矢量,每个中断矢量占用 4个字节,共 256×4=1024=1K

显示缓冲区: B0000H—BOF9FH约 4K 字节,是单色显示器的显示缓冲区,存放文本方式下所显示字符的 ASCII 码及属性码; B8000H—BBF3FH约 16K 字节,是彩色显示器的显示缓冲区,存放图形方式下屏幕显示象素的代码。

启动区: FFFF0H—FFFFFH共 16 个单元,用以存放一条无条件转移指令的代码,转移到系统的初始化部分。

Page 49: 第 2 章 80X86 微处理器

2 、堆栈 ( 1 )堆栈的概念 堆栈( stack )是一种数据结构,它的特殊之处在于

只能允许在链表的一端(称为栈顶,英文为 top )进行添加和删除操作,因而按照后进先出( LIFO-Last In First Out )的原理工作。堆栈数据结构支持两种基本操作:压栈( push )和弹栈( pop ):

压栈(入栈) PUSH :将对象或者数据压入栈中,更新栈顶指针,使其指向最后入栈的对象或数据。

弹栈(出栈) POP :返回栈顶指向的对象或数据,并从栈中删除该对象或数据,更新栈顶。

Page 50: 第 2 章 80X86 微处理器

( 2 )堆栈的功能及工作过程 功能:保存断点地址和重要数据。 工作过程:以 8086汇编语言为例

入栈操作:以 PUSH AX 为例 ( SP-1 ) <- 高字节 AH ( SP-2 ) <- 低字节 AL 出栈操作:以 POP BX 为例 低字节单元 BL <- ( SP ) 高字节单元 BH <- ( SP+1 ) SP <- SP+2

Page 51: 第 2 章 80X86 微处理器

2 . 7 8086/8088CPU 的 I/O 组织

I/O 设备的组织方式一般有两种:统一编址方式和独立编址方式。 2 . 7 . 1 统一编址方式 统一编址方式,又称“存储器映射方式”。在这种编址方式

下, I/O端口地址置于存储器空间中,在整个存储空间中划出一部分空间给外设端口,端口和存储单元统一编址。

优点:这种方式无需专门的 I/O 指令,从而简化了指令系统的设计。

缺点:端口占用存储器的地址空间,使存储器地址资源更加紧张,同时端口指令的长度增加,执行时间较长,端口地址译码器较复杂。

Page 52: 第 2 章 80X86 微处理器

2 . 7 . 2 独立编址方式这种方式又称“ I/O映射方式”。在这种方

式下, I/O端口单独编址构成一个 I/O 空间,不占用存储器地址空间。

优点:端口所需的地址线较少,地址译码器较简单,采用专用的 I/O 指令,端口操作指令执行时间少,指令长度短。

缺点:输入输出指令类别少,一般只能进行传送操作。

Page 53: 第 2 章 80X86 微处理器

2 . 7 . 3 8086/8088CPU 的 I/O 组织

8086/8088 CPU共有 20 条地址线,采用独立编址的方式。由于只用地址总线的低 16 位A15~ A0 来寻址端口地址,所以 8086 CPU可以访问的 I/O端口地址共有 64KB ,其地址为 0000H~ FFFFH 。