Download ppt - 2.1 微处理器概述

Transcript
Page 1: 2.1   微处理器概述

第 2章 微处理器

2.1 微处理器概述

2.1.1 CPU的基本概念和组成

2.1.2 CPU主要技术参数

2.1.3 CPU主流技术术语浅析

返回本章首页

Page 2: 2.1   微处理器概述

第 2章 微处理器

2.1.1 CPU 的基本概念和组成

微处理器即微型化的中央处理器又称为中央处理器。

微处理器的职能是执行算术 / 逻辑运算,并负责控制整个计算机系统,使之能自动协调地完成各种操作。

返回本节

Page 3: 2.1   微处理器概述

第 2章 微处理器

CPU 的内部结构与工作原理

CPU0 由运算器和控制器组成, CPU 的内部结构可分为控制单元,逻辑单元和存储单元三大部分。 CPU 的工作原理就象一个工厂对产品的加工过程:进入工厂的原料(指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储器)中,最后等着拿到市场上去卖(交由应用程序使用)。

Page 4: 2.1   微处理器概述

第 2章 微处理器

2.1.2 CPU 主要技术参数

1 .位、字节和字长 2 . CPU 外频 3. CPU 主频 4 .前端总线( FSB )频率5. L1和 L2 Cache 的容量和速率

返回本节

Page 5: 2.1   微处理器概述

第 2章 微处理器

1 .位、字节和字长

位:电脑技术中采用二进制“ 0”和“ 1” ,其中无论是 “ 0”或是“ 1”在 CPU 中都是一“位”。

字长:电脑技术中对 CPU 能一次处理的二进制数的位数叫字长。 字节和字长的区别:由于常用的英文字符用 8 位二进制就可以表示,所以通常就将 8 位称为一个字节。对于不同的 CPU 字节的长度是不固定的,字长的长度也不一样。8 位的 CPU 一次只能处理一个宇节,而 32 位的 CPU 一次就能处理 4 个宇节,同理字长为 64 位的 CPU 一次可以处理 8 个字节。

Page 6: 2.1   微处理器概述

第 2章 微处理器

2 . CPU 外频

CPU 外频是由主板为 CPU 提供的基准时钟频率。

正常情况下 CPU 总线频率和内存总线频率相同,所以当 CPU 外频提高后,与内存之间的交换速度也相应得到了提高,对提高电脑整体运行速度影响较大。

Page 7: 2.1   微处理器概述

第 2章 微处理器

3. CPU 主频主频也叫工作频率,用来表示 CPU 的运算速度。

CPU 的主频=外频 × 倍频系数。

CPU 的主频表示在 CPU 内数字脉冲信号震荡的速度,与 CPU 实际的运行能力是没有直接关系的。

Page 8: 2.1   微处理器概述

第 2章 微处理器

4 。 前端总线( FSB )频率前端总线 (FSB) 频率(即总线频率)是直接影响CPU 与内存直接数据交换速度。

外频与前端总线频率的区别:前端总线的速度指的是数据传输的速度,外频是 CPU 与主板之间同步运行的速度。

Page 9: 2.1   微处理器概述

第 2章 微处理器

5 。缓存

缓存是指可以进行高速数据交换的存储器,它先于内存与 CPU 交换数据,因此速度很快。

L1   Cache (一级缓存) L2   Cache (二级缓存)

Page 10: 2.1   微处理器概述

第 2章 微处理器

2.1.3 CPU 主流技术术语浅析

1 .流水线技术 2 .超流水线和超标量技术 3 .乱序执行技术 4 .分支预测和推测执行技术 5 .指令特殊扩展技术

返回本节

Page 11: 2.1   微处理器概述

第 2章 微处理器

1 .流水线技术流水线的工作方式就象工业生产上的装配流水线。在 CPU 中由 5~6 个不同功能的电路单元组成一条指令处理流水线,然后将一条指令分成 5~6 步后再由这些电路单元分别执行,这样就能实现在一个 CPU 时钟周期完成一条指令,因此提高CPU 的运算速度。

Page 12: 2.1   微处理器概述

第 2章 微处理器

2 .超流水线和超标量技术

超流水线是指某些 CPU 内部的流水线超过通常的 5~6 步以上,例如 Pentiumpro 的流水线就长达14 步。将流水线设计的步(级)数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的 CPU 。 超标量是指在 CPU 中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。

Page 13: 2.1   微处理器概述

第 2章 微处理器

3 .乱序执行技术

乱序执行是指 CPU 采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。

Page 14: 2.1   微处理器概述

第 2章 微处理器

4 .分支预测和推测执行技术 分枝预测和推测执行是 CPU 动态执行技术中的主要内容,动态执行是目前 CPU 主要采用的先进技术之一。采用分枝预测和动 态执行的主要目的是为了提高 CPU 的运算速度。 由于程序中的条件分枝是根据程序指令在流水线处理后结果再执行的,所以当 CPU 等待指令结果时,流水线的前级电路也处于空闲状态等待分枝指令,这样必然出现时钟周期的浪费。如果 CPU 能在前条指令结果出来之前就能预测到分枝是否转移,那么就可以提前执行相应的指令,这样就避免了流水线的空闲等待,相应也就提高了 CPU 的运算速度。但另一方面一旦前指令结果出来后证明分枝预测错误,那么就必须将已经装入流水线执行的指令和结果全部清除,然后再装入正确指令重新处理,这样就比不进行分枝预测等待结果后再执行新指令还慢了

Page 15: 2.1   微处理器概述

第 2章 微处理器

5 .指令特殊扩展技术

在介绍 CPU性能中还经常提到 "扩展指令 "或 "特殊扩展 " 一说,这都是指该 CPU 是否具有对 X86 指令集进行指令扩展而言。扩展指令中最早出现的是 Intel公司自己的 "MMX" ,其次是 AMD公司的 "3DNow! " ,最后是 Pentium Ⅲ中的 "SSE"

Page 16: 2.1   微处理器概述

第 2章 微处理器

2.2 8086/8088 微处理器

2.2.1 8086的编程结构

2.2.2 8086的工作模式和引脚功能

2.2.3 8086的系统组成

2.2.4 8086的总线时序

返回本章首页

Page 17: 2.1   微处理器概述

第 2章 微处理器

2、 8086/8088 微处理器的结构

8086: Intel 系列的 16 位微处理器, 16 条数据线、 20 条地址线,可寻址地址范围220=1MB, 8086 工作时,只要一个 5V 电源和一个时钟,时钟频率为 5MHz 。

8088 :内部与 8086 兼容,也是一个 16 位微处理器,只是外部数据总线为 8 位,所以称为准 16 位微处理器。它具有包括乘法和除法的 16 位运算指令,所以能处理 16 位数据,还能处理 8 位数据。 8088有 20 根地址线,所以可寻址的地址空间达 220即 1M 字节。

Page 18: 2.1   微处理器概述

第 2章 微处理器

图 2-1 8086 的编程结构图

Page 19: 2.1   微处理器概述

第 2章 微处理器

1 .总线接口单元 (BIU)

总线接口部件由下列各部分组成: ( 1 ) 4 个段地址寄存器;CS——16 位的代码段寄存器; DS——16 位的数据段寄存器; ES——16 位的扩展段寄存器; SS——16 位的堆栈段寄存器; ( 2 ) 16 位的指令指针寄存器IP ;( 3) 20 位的地址加法器; ( 4 ) 6 字节的指令队列缓冲器。

Page 20: 2.1   微处理器概述

第 2章 微处理器

2 .执行单元 EU

执行部件由下列几个部分组成: ( 1 ) 4 个通用寄存器,即AX、 BX、 CX、 DX ;( 2 ) 4 个专用寄存器:BP, SP, SI, DI

( 3 )标志寄存器 FR ;( 4 ) 算 术 逻 辑 单 元ALU 。

Page 21: 2.1   微处理器概述

第 2章 微处理器

功能:从 BIU 的指令队列中取出指令代码,经指令译码器译码后执行指令所规定的全部功能。执行指令所得结果或执行指令所需的数据,都由 EU向 BIU 发出命令,对存储器或 I/O 接口进行读 /写操作。

功能:根据执行部件 EU 的请求,负责完成 CPU 与存储器或 I/O 设备之间的数据传送。

Page 22: 2.1   微处理器概述

第 2章 微处理器

3、 BIU和 EU 的管理

(1) BIU和 EU 可以并行工作,提高 CPU效率。BIU监视着指令队列。当指令队列中有 2 个空字 节时,就自动把指令取到队列中。(2) EU 执行指令时,从指令队列头部取指令,然后 执行。如需访问存储器,则 EU向 BIU 发出请求, 由 BIU访问存储器。(3) 在执行转移、调用、返回指令时,需改变队列 中的指令,要等新指令装入队列中后, EU 才继 续执行指令。 -------“ 流水线”结构

Page 23: 2.1   微处理器概述

第 2章 微处理器

8086CPU 中可供编程使用的有 14个 16 位寄存器,按其用途可分为 3类:通用寄存器、段寄存器、指针和标志寄存器,如图所示:

累加器AH AL

BH BL

CL

DH DL

CH

SP

SI

DI

IPFR

CS

DS

SS

ES

BP

基址寄存器计数寄存器数据寄存器堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器指令指针寄存器标志寄存器代码段寄存器

段寄存器

附加段寄存器堆栈段寄存器

数据寄存器

地址指针和变址寄存器

控制寄存器

通用寄存器

数据段寄存器

8086CPU 内部寄存器结构

Page 24: 2.1   微处理器概述

第 2章 微处理器

数据寄存器

数据寄存器包括 4个 16 位的寄存器AX、 BX、 CX和 DX ,一般用来存放 16 位数据,故称为数据寄存器。其中的每一个又可根据需要将高 8 位和低 8 位分成独立的两个 8 位寄存器来使用,即AH、 BH、 CH、 DH和AL、 BL、 CL、 DL两组,用于存放 8 位数据,它们均可独立寻址、独立使用。

累加器AH AL

BH BL

CL

DH DL

CH基址寄存器计数寄存器数据寄存器

数据寄存器

Page 25: 2.1   微处理器概述

第 2章 微处理器

指针和变址寄存器包括指针寄存器 SP、 BP 和变址寄存器 SI、 DI ,都是 16 位寄存器,一般用来存放地址的偏移量。

SP

SI

DI

BP堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器

地址指针和变址寄存器

Page 26: 2.1   微处理器概述

第 2章 微处理器

8086CPU共有 4个 16 位的段寄存器,用来存放每一个逻辑段的段起始地址。

CS

DS

SS

ES

代码段寄存器

段寄存器

附加段寄存器堆栈段寄存器数据段寄存器

Page 27: 2.1   微处理器概述

第 2章 微处理器

指令指针寄存器 IP :是一个 16 位的寄存器,存放 EU 要执行的下一条指令的偏移地址,用以控制程序中指令的执行顺序,实现对代码段指令的跟踪 。 标志寄存器 F R :是一个 16 位的寄存器,共 9个标志,其中 6 个用作状态标志, 3 个用作控制标志。

IP

FR

指令指针寄存器标志寄存器 控制寄存器

Page 28: 2.1   微处理器概述

( 6 )、标志寄存器

16 位寄存器,其中有 7 位未用。D15 D0 OF DF IF TF SF ZF AF PF CF

进借位标志

奇偶标志

半进借位标志

零标志

符号标志

单步中断

中断允许

方向标志

溢出标志

1- 有进、借位

0- 无进、借位

1-低 8 位有偶数个 1

0-低 8 位有奇数个 1

1-低 4 位向高 4 位有进、借位

0-低 4 位向高 4 位无进、借位

1- 结果为 0

0- 结果不为0

Page 29: 2.1   微处理器概述

第 2章 微处理器

寄存器的隐含用法但在某些指令中规定了某些通用寄存器的专门用法, 这样可以缩短指令代码长度;或使这些寄存器的使用具有隐含的性质, 以简化指令的书写形式(即在指令中不必写出使用的寄存器名称)。 通用寄存器的隐含用法如下表所示。

Page 30: 2.1   微处理器概述

第 2章 微处理器

Page 31: 2.1   微处理器概述

第 2章 微处理器

2.2.2 8086 的工作模式和引脚功能

1 .最小工作模式 2 .最大工作模式 3 . 8086CPU 的引脚信号

Page 32: 2.1   微处理器概述

第 2章 微处理器

图 2-3 8086CPU 最小模式下的典型配置

Page 33: 2.1   微处理器概述

第 2章 微处理器

1 .最小工作模式

由图可知,在 8086 的最小模式中,硬件连接上有如下几个特点:( 1)MN/ 引脚接 +5V ,决定了 8086 工作在最小模式。( 2 )有一片 8234A ,作为时钟发生器。( 3 )有三片 8282 或 74LS373 ,用来作为地址锁存器。( 4 )当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,可选用两片 8286 或 74LS245 作为总线收发器。

MX

Page 34: 2.1   微处理器概述

第 2章 微处理器

2 .最大工作模式

由图 2-4 可知,最大模式配置和最小模式配置有一个主要的差别: 最大模式下多了 8288 总线控制器。

图 2-4 8086CPU 最大工作模式下的典型配置

Page 35: 2.1   微处理器概述

第 2章 微处理器

Page 36: 2.1   微处理器概述

第 2章 微处理器

3 . 8086CPU 的引脚信号

8086CPU 采用双列直插式的封装形式,具有 40 条引脚,见图 2-5 。它采用分时复用的地址 / 数据总线,所以有一部分引脚具有双重功能,即在不同时钟周期内,引脚的作用不同。 图 2-5 8086 的引脚信号(括号

中为最大模式下的名称) 返回本节

Page 37: 2.1   微处理器概述

第 2章 微处理器

1 、地址 / 数据总线AD15-AD0 :地址 / 数据复用引脚,双向,三态。( 8086/8088) AD15-AD0: 16位地址总线 A15-A0 ,输出访问存储器或 I/O 的地址信息。( 8086) AD15-AD0: 16 位数据总线 D15-D0 ,与存储器和 I/O设备交换数据信息。( 8088) AD7-AD0: 8 位数据总线 D7-D0 ,与存储器和 I/O 设备交换数据信息。地址 / 数据总线复用,分时工作。

Page 38: 2.1   微处理器概述

第 2章 微处理器

2、 A19/S6-A16/S3 :地址 /状态总线复用引脚,输出,三态。A19/S6-A16/S3 :输出访问存储器的 20 位地址的高 4 位地址 A19-A16 。A19/S6-A16/S3 :输出 CPU的工作状态。

Page 39: 2.1   微处理器概述

第 2章 微处理器

S6 :指示 8086/8088 当前是否与总线相连, S6=0 ,表示 8086/8088 当前与总线相连。

S5 :表明中断允许标志当前的设置。 S5=0 ,表示 CPU 中断是关闭的,禁止一切可屏蔽中断源的中断请求; S5=1 ,表示 CPU 中断是开放的,允许一切可屏蔽中断源的中断申请。

S4、 S3 :指出当前使用段寄存器的情况。S4、 S3 组合所对应的段寄存器情况 S4 S3 段寄存器 0 0 当前正在使用 ES 0 1 当前正在使用 SS 1 0 当前正在使用 CS 1 1 当前正在使用 DS

Page 40: 2.1   微处理器概述

第 2章 微处理器

3 、控制总线

(1)、 /BHE/S7 :高 8 位数据总线允许 /状态复用引脚。

S7: 8086 中无定义。 8088 中,在最大模式中,为高电平;在最小模式中,输出 SS0 信号,此信号与其它信号合作将总线周期的读 / 写动作。

Page 41: 2.1   微处理器概述

第 2章 微处理器

( 2 )、 /RD :读信号,三态输出,低电平有效。 /RD=0 ,表示当前 CPU正在对存储器或 I/O 端口进行读操作。( 3 )、 /WR :写信号,三态输出,低电平有效。 /WR=0 ,表示当前 CPU正在对存储器或 I/O 端口进行读操作。( 4 )、 M//IO :存储器或 IO 端口访问信号,三态输出。 M//IO=1 ,表示 CPU正在访问存储器; M//IO=0 ,表示 CPU正在访问 IO 端口。( 5 )、 READY :准备就绪信号,输入,高电平有效。 READY=1 ,表示CPU访问的存储器或 IO 端口已准备好传送数据。若 CPU 在总线周期 T3状态检测到 READY=0 ,表示未准备好, CPU 自动插入一个或多个等待状态TW ,直到 READY=1 为止。

Page 42: 2.1   微处理器概述

第 2章 微处理器

( 6 )、 INTR :可屏蔽中断请求信号,输入,高电平有效。当 INTR=1 ,表示外设向 CPU 发出中断请求, CPU 在当前指令周期的最后一个T状态去采样该信号,若此时, IF=1, CPU响应中断,执行中断服务程序。( 7 )、 /INTA :中断响应信号,输出,低电平有效。表示 CPU响应了外设发来的中断申请信号 INTR 。( 8 )、 NMI :不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受 IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。( 9 )、 /TEST :测试信号,输入,低电平有效。当 CPU 执行 WAIT 指令时,每隔个时钟周期对 /TEST 进行一次测试,若 /TEST=1 ,继续等待,直到 /TEST=0 。

Page 43: 2.1   微处理器概述

第 2章 微处理器( 10 )、 RESET :复位信号,输入,高电平有效。 RESET 信号至少要保持 4个时钟周期。复位时:标志寄存器、 IP、DS、 SS、 ES为 0, CS=FFFFH ,复位后 CPU从 FFFF0H 处开始 执行。( 11 )、 ALE :地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0 ,分时使用 AD15-AD0 地址 / 数据总线。( 12 )、 DT//R :数据发送 / 接收控制信号,三态输出。此信号控制数据总线上的收发器 8286 的数据传送方向, DT//R=1 ,发送数据 ---- 写操作;DT//R=0 ,接收数据 --读操作。( 13 )、 /DEN :数据允许信号,三态输出,低电平有效。作为数据总线上收发器 8286 的选通信号。

Page 44: 2.1   微处理器概述

第 2章 微处理器( 14 )、 HOLD :总线请求信号,输入,高电平有效。当系统中 CPU 之外的另一个控制器要求使用总线时,通过它向 CPU 发一高电平的请求信号。( 15 )、 HLDA :总线请求响应信号,输出,高电平有效。当 HLDA 有效时,表示 CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU 的线脚呈现高阻抗状态,从而让出总线。( 16 )、 MN//MX :工作模式选择信号,输入。 MN//MX=1 ,表示 CPU 工作在最小模式系统; MN//MX=0 ,表示CPU 工作在最大模式系统。( 17 )、 CLK :主时钟信号,输入。 8086/8088 的时钟频率为 5MHZ 。

Page 45: 2.1   微处理器概述

第 2章 微处理器

4 、电源线和地线8086/8088采用单 +5V ,1、 20 引脚为地线。

Page 46: 2.1   微处理器概述

第 2章 微处理器

5 、最大模式下的有关引脚( 1 )、 QS1、 QS2 :指令队列状态信号,输出。 QS1 QS2 含义 0 0 无操作 0 1 将指令首字节 送入指令队列 1 0 队列为空 1 1 将指令其余字节 送指令队列

Page 47: 2.1   微处理器概述

第 2章 微处理器

( 2 )、 S2、 S1、 S0 :总线周期状态信号,三态输出。( 3 )、 /RQ//GT1、 /RQ//GT0 :总线请求信号(输入) / 总线请求允许信号(输出),双向,低电平有效。( 4 )、 /LOCK :总线封锁信号,三态输出,低电平有效。 /LOCK=0, CPU 不允许其它控制器占用总线。

Page 48: 2.1   微处理器概述

第 2章 微处理器

Page 49: 2.1   微处理器概述

第 2章 微处理器

2.2.3 8086 的系统组成

1 . 8086 的存储体结构 2 . 8086 存储器的分段结构 3 . 8086 存储器的逻辑地址与物理4 . 8086 存储器 20 位物理地址的形

成5. 堆栈

Page 50: 2.1   微处理器概述

第 2章 微处理器

1 . 8086 的存储体结构

Page 51: 2.1   微处理器概述

第 2章 微处理器

BHE和 A0 的意义

Page 52: 2.1   微处理器概述

第 2章 微处理器

2 . 8086 存储器的分段结构

8086 CPU 中有四个段寄存器: CS, DS, SS和ES ,这四个段寄存器存放了 CPU 当前可以寻址的四个段的基值,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设 定 ,就规 定 了CPU 当前可寻址的段,如图 2-7 所示。 图 2-7 当前可寻址的存储

器段(堆栈段和附加段重叠)

Page 53: 2.1   微处理器概述

第 2章 微处理器

3 . 8086 存储器的逻辑地址与物理

8086 CPU 中的每个存储元在存储体中的位置都可以使用实际地址和逻辑地址来表示。

CPU 访问存 储 器 时 ,要形成 20 位的物理地址,即先找到某段,再找到该段内的偏移量。换句话说, CPU 是以物理地址访问存储器的,如图 2-8 所示。

Page 54: 2.1   微处理器概述

第 2章 微处理器

4 . 8086 存储器 20 位物理地址的形成

在存储段划分时,段内地址是连续的,段与段之间是相互独立的。 每个段的起始地址称段的基址,段基址必须是能被 16 整除的那些地址,即 20 位的段基址的低四位应当是 0000 。 由于段起始地址的低四位为 0 ,所以可用 20位地址的高 16 位表示段的基址,存放在段基址寄存 器 中 。 段 基 址 寄 存 器 共 四 个 :CS、 DS、 ES、 SS。

Page 55: 2.1   微处理器概述

第 2章 微处理器

Page 56: 2.1   微处理器概述

第 2章 微处理器

5. 堆栈

堆栈由 SS和 SP寻址

工作原则:“先进后出”,以字进行操作。

压栈 ( 存入数据 ) 出栈(取出数据)操作时 SP±2

Page 57: 2.1   微处理器概述

第 2章 微处理器

2.2.4 8086 的总线时序

1 .指令周期、总线周期和时钟周期2. 读周期的时序 3 .写周期的时序

Page 58: 2.1   微处理器概述

第 2章 微处理器

BHE/ S7 :RD :

M//IO :

WR :

ALE :

高 8 位数据总线允许 /状态复用引脚。读信号,三态输出,低电平有效。 表示当前 CPU正在对存储器或 I/O 端口进行读操作。写信号,三态输出,低电平有效。

表示当前 CPU正在对存储器或 I/O 端口进行读操作。存储器或 IO 端口访问信号,三态输出。=1 ,表示 CPU正在访问存储器 ; =0 ,正在访问 IO端口。

地址锁存允许信号,输出,高电平有效。

用来锁存地址信号 A15-A0 ,分时使用地址 / 数据总线。

Page 59: 2.1   微处理器概述

第 2章 微处理器

DT/R :数据发送 / 接收控制信号,三态输出。 此信号控制数据总线上的收发器 8286 的数据传送方向 =1 ,发送数据 ---- 写操作; =0 ,接收数据 --读操作。

DEN :数据允许信号

=0 时表明 CPU 当前准备发送或接受数据。

Page 60: 2.1   微处理器概述

第 2章 微处理器

1. 指令周期、总线周期和时钟周期

指令周期

总线周期

时钟周期( T周期)

Page 61: 2.1   微处理器概述

第 2章 微处理器

8086CPU 的基本总线周期 一般包含如下几个状态:

T1状态、 T2状态、 T3状态、 TW状态、 T4

状态

Page 62: 2.1   微处理器概述

第 2章 微处理器

1 .读周期的时序(图 2-9 )

图 2-9 8086读总线周期

Page 63: 2.1   微处理器概述

第 2章 微处理器

一个基本的读周期一般包含如下几个状态:

T1状态: T2状态: T3状态: Tw状态: T4状态:

Page 64: 2.1   微处理器概述

第 2章 微处理器

2 .写周期的时序(图 2-10 )

图 2-10 8086 写总线周期

Page 65: 2.1   微处理器概述

第 2章 微处理器

2.3 8086 指令系统和汇编语言

2.3.1 寻址方式

2.3.2 8086的指令系统

2.3.3 汇编语言程序设计

返回本章首页

Page 66: 2.1   微处理器概述

第 2章 微处理器

2.3.1 寻址方式

1 .操作数的寻址方式 2 .转移地址的寻址方式

Page 67: 2.1   微处理器概述

第 2章 微处理器

1 .操作数的寻址方式

( 1 )立即寻址 ( 2 )寄存器寻址 ( 3 )直接寻址 ( 4 )寄存器间接寻址 ( 5 )寄存器相对寻址方式 ( 6 )基址变址寻址方式 ( 7 )相对基址变址寻址方式

Page 68: 2.1   微处理器概述

第 2章 微处理器

( 1 )立即寻址

例如: MOV AX, 1234H ;十六进制数 1234H送入 AX。如图 2-11 所示。

AH AL操作码

1 2

3 4

··

···

AX

Page 69: 2.1   微处理器概述

第 2章 微处理器

( 2 )寄存器寻址

操作数存放在指令规定的寄存器中,对于 16 位操作数,寄存器可以是 AX , BX , CX , DX , SI , DL , SP 或BP ; 而 对 8 位 操 作 数 , 寄 存 器 可 以 是AH, AL, BH, BL, CH, CL, DH或 DL。例如: MOV AX, BX ;将寄存器 BX 的内容送入 AX 中。如图 2-12 所示。

X X X X

AX BX

Page 70: 2.1   微处理器概述

第 2章 微处理器

( 3 )直接寻址

例如 : MOV AL , DS:[2000H] ;将逻辑地址为DS:2000 单 元 内 的 字 节送入 AL。若段基址 DS=4000H ,则段起始物理地址为 4000H左移 4 位 , 即 40000H ,此指令将数据段中物理地址为 42000H 单元的内容56H传至 AL 寄存器。如图 2-13 所示。

Page 71: 2.1   微处理器概述

第 2章 微处理器

( 4 )寄存器间接寻址

例如: MOV AX , [BX] ; BX 内容为有效地址 EA(偏移量)。若 DS=4000H, BX=100H ,此指令将物理地址 40100H 单元的内容传至 AL 寄存器(段基地址同样为 40000H)。如图 2-14 所示。

Page 72: 2.1   微处理器概述

第 2章 微处理器

( 5 )寄存器相对寻址方式

例 如 : MOV AL ,[BX+5] ; 若DS=6000H, BX=2000H, BX 的内容加上 8 位位移量 05H 作为操作数的有效地址。传送数据段中的一个字节到 AL 中。如果使用 BP ,则隐含地表示操作数存放在堆栈段中。如图 2-15 所示。

Page 73: 2.1   微处理器概述

第 2章 微处理器

( 6 )基址变址寻址方式

例 如 : MOV AX ,[BX+SI] ; BX的内容与 SI 的内容之和作为操作数的有效地址。传送数据段中的一个字。如图 2-16 所示。

Page 74: 2.1   微处理器概述

第 2章 微处理器

( 7 )相对基址变址寻址方式

例如: MOV AH,[BX+DI+1234H] ;BX 的内容加上 DI的内容再加上位移量 1234H 作为操作数的有效地址。如图 2-17 所示。

Page 75: 2.1   微处理器概述

第 2章 微处理器

2 .转移地址的寻址方式

( 1 )段内直接寻址 ( 2 )段内间接方式 ( 3 )段间直接寻址 ( 4 )段间间接方式

Page 76: 2.1   微处理器概述

第 2章 微处理器

( 1 )段内直接寻址

段内直接寻址方式也称为相对寻址方式,转移的目标地址是当前 IP 内容和一个 8 位或 16 位的位移量之和,这个位移量才是指令代码的一部分,所以叫相对寻址。如图 2-18 所示

Page 77: 2.1   微处理器概述

第 2章 微处理器

( 2 )段内间接方式 这种方式也是在段内,其转移的目标地址是寄存器或存储单元的内容,即以寄存器或存储器单元内容来更新 IP的内容,所以是绝对偏移量,注意和段内直接方式的相对偏移量的区别。若目标地址为存储单元内容,则该存储单元本身可由上述与存储器操作数有关的任何寻址方式寻址,只是它里面的内容为新的 IP值。如图 2-19 所示。

Page 78: 2.1   微处理器概述

第 2章 微处理器

( 3 )段间直接寻址

这 种 方 式 用于段 间转移, 目 标 地 址 的 段 基值( CS )和偏移地址( IP )都是指令码的组成部分,用来更新当前 CS和 IP 。如图 2-20 所示。

偏移量

指令

段值

  CS

 IP

Page 79: 2.1   微处理器概述

第 2章 微处理器

( 4 )段间间接方式

这种方式同样用于段间转移,只不过当前 CS和 IP 由存储器中连续的两个字更新,低位地址的字更新 IP ,高位地址的字更新 CS ,存放新 IP和 CS 的存储单元地址由前述存储器操作数的寻址方式决定。见图 2-21 所示。例如: JMP DWORD PTR [INTER+BX] ;取 DS段中偏移为 [INTER+BX] 处的双字作为新的 CS和 IP。

返回本节

Page 80: 2.1   微处理器概述

第 2章 微处理器

2.3.2 8086 的指令系统

1 .数据传送类2 .算术运算类3 .逻辑运算与移位指令4 .字符串处理5 .控制转移指令6 .处理器控制指令

Page 81: 2.1   微处理器概述

第 2章 微处理器

1 .数据传送类

( 1 )通用数据传送指令这种指令共 5 条,如表 2-4 所示。 ( 2 )输入 /输出指令( 3 )目标地指传送指令这组指令包括三条指令,如表 2-5 所示。( 4 )标志位传送指令

Page 82: 2.1   微处理器概述

第 2章 微处理器

表 2-4 通用数据传送指令格式

Page 83: 2.1   微处理器概述

第 2章 微处理器

表 2-5 目标地址传送指令格式

Page 84: 2.1   微处理器概述

第 2章 微处理器

2 .算术运算类

( 1 )加法指令 ( 2 )减法指令 ( 3 )乘法指令 ( 4 )除法指令

Page 85: 2.1   微处理器概述

第 2章 微处理器

3 .逻辑运算与移位指令

( 1 )逻辑运算指令 ( 2 )移位与循环移位指令

表 2-6 逻辑运算指令格式

Page 86: 2.1   微处理器概述

第 2章 微处理器

4 .字符串处理

8086/8088 指令系统为文本处理提供了一组强有力的指令(字符串处理指令),对一系列含有字母数字代码的字节(也称字符串)进行处理,例如传送、比较、查找、插入、删除等,字符串指令为这些处理提供了很大方便。字符串指令的寻址方式只用隐含寻址,源串固定使用 SI ,目的串固定使用 DI。

Page 87: 2.1   微处理器概述

第 2章 微处理器

5 .控制转移指令

( 1 )转移指令,分为无条件转移指令和条件转移指令; ( 2 )循环指令; ( 3 )过程调用与返回指令; ( 4 )中断与返回指令。

Page 88: 2.1   微处理器概述

第 2章 微处理器

6 .处理器控制指令

主要包括标志处理指令 7 条和其他处理器控制指令 5 条。详细内容同样参见指令一览表。

返回本节

Page 89: 2.1   微处理器概述

第 2章 微处理器

2.3.3 汇编语言程序设计

1 .汇编语言指令 2 .汇编语言基本语法3 .汇编语言程序结构 4 .标准汇编语言程序框架

Page 90: 2.1   微处理器概述

第 2章 微处理器

1 .汇编语言指令

8086汇编语言中,有多种伪指令,包括: 数据定义伪指令; 结构定义伪指令; 记录定义伪指令; 段定义伪指令; 程序终结伪指令; 过程定义伪指令; 访问外部标识符伪指令; 宏操作伪指令。

Page 91: 2.1   微处理器概述

第 2章 微处理器

2 .汇编语言基本语法

( 1) ASM-86 的字符集 ( 2 )关键字 ( 3 )语句 ( 4 )表达式 ( 5 )指令性语句中的操作数

Page 92: 2.1   微处理器概述

第 2章 微处理器

3 .汇编语言程序结构

汇编语言源程序是由语句序列组成的,语句序列应包括: 数据(程序要处理的对象); 处理数据的实体; 承上启下的记录。8086/8088 微处理器系统的存储结构是分段式访问结构,这种结构是程序运行的基础,因此, 8086/8088 汇编语言程序必须具备: 代码段(处理数据的对象) 数据段(定义加工处理对象) 堆栈段

Page 93: 2.1   微处理器概述

第 2章 微处理器

4 .标准汇编语言程序框架

通常,一个源程序都有大体相同的结构或框架,下面给出一个源程序的框架结构,该程序是在 PC-DOS环境下运行的。; 定义堆栈段STACK_SEG  SEGMENT PARA STACK 'STACK'           ··· ; 定义堆栈深度与堆栈段变量STACK_SEG  ENDS ; 定义数据段DATA_SEG   SEGMENT PARA PUBLIC 'DATA'           ··· ; 定义变量DATA_SEG   ENDS 

Page 94: 2.1   微处理器概述

第 2章 微处理器

; 定义代码段CODE_SEG   SEGMENT PARA PUBLIC 'CODE'MAIN       PROC FAR           ASSUME CS:CODE_SEG, DS:DATA_SEG           ASSUME SS:STACK_SEG  START:   PUSH DS           MOV AX,0           PUSH AX           MOV AX,DATA_SEG           MOV DS,AX

Page 95: 2.1   微处理器概述

第 2章 微处理器

 ··· ; 主过程内容           RET

MAIN       ENDP

PROC_A     PROC NEAR

           ··· ;子过程 A 内容, A 为主过程调用PROC_A     ENDP

           ···   ; 其他过程内容CODE_SEG   ENDS

           END START

Page 96: 2.1   微处理器概述

第 2章 微处理器

图 2-22 DOS 下内存的分配示意图返回本节

Page 97: 2.1   微处理器概述

第 2章 微处理器

2.4 飞速发展的 CPU

2.4.1 辉煌的历程

2.4.2 潮流和未来

返回本章首页

Page 98: 2.1   微处理器概述

第 2章 微处理器

2.4.1 辉煌的历程

1 . Pentium 前时代2 . Pentium 时代3 . Pentium 后时代

返回本节

Page 99: 2.1   微处理器概述

第 2章 微处理器

2.4.2 潮流和未来

1 .奔腾 4 的时代 2 .走近 64 位 CPU

Page 100: 2.1   微处理器概述

第 2章 微处理器

1 .奔腾 4 的时代

2000年下半年, Intel 推出了代号 Willamette 的处理器,它是英特尔 IA-32 CPU家族中最新的成员,也是英特尔P6 系列的终结者。这就是 Pentium IV( P4)。 P4 CPU 基于新的 32 位微结构,在许多方面超过了奔腾Ⅱ /Ⅲ等上两代的 IA-32 CPU 。NetBurst 微架构是 Pentinum 4 处理器的基石。这里解释一下处理器的架构与微架构:处理机的架构指的是指令集、寄存器和程序员公用的内存驻留的数据结构,它们在处理器的发展进程中得到继承和增强。处理机的微架构指的是处理机架构在硅片上的实现。

Page 101: 2.1   微处理器概述

第 2章 微处理器

NetBurst 微架构特点细节:超流水线技术: 执行追踪 Cache :快速执行引擎 REE :400MHz 系统总线: 先进的动态执行: 流式 SIMD 扩充 2( SSE2 ):

Page 102: 2.1   微处理器概述

第 2章 微处理器

图 2-23 Pentium IV 处理器及搭配的 RDRAM 内存条

Page 103: 2.1   微处理器概述

第 2章 微处理器

2 .走近 64 位 CPU

64 位处理器针对的主要对象是目前对 32 位系统感觉受限制的用户。一些用来设计汽车、卫星以及一些其他的非常复杂的产品的 MCAD软件(机械计算机辅助设计软件)将通过 64 位系统得到不少的性能提升。另外,超大规模的数据库软件也由于 64 位的大内存寻址区域而获得不少优势。可见其企业级应用是相当广泛的。 Intel 的 64 位结构叫做 IA-64 。目前, Intel同时推出了 Pentium 4 以及 Intel第一个从 IA-32到IA-64架构转换的产品 Itanium 。

Page 104: 2.1   微处理器概述

第 2章 微处理器

图 2-24 Intel 的 64位 CPU- Itanium

Page 105: 2.1   微处理器概述

第 2章 微处理器

( 1) IA-64架构的特点

1 )更改现有工业标准体系,建立 IA-64架构后将采用并行运算方式的体系;2 )单指令简化,即每条指令执行的功能减少,但执行效率变高;3 )由于运行指令并行化,并且采用了程序控制指令,使分支预测更加准确,提高运算的利用效率;4 )增加程序运行时的并行运算预测能力,使内存中需要的数据更容易在 Cache 中命中;

Page 106: 2.1   微处理器概述

第 2章 微处理器

5 )增加内存的总容量,扩展到 2 的 64次方,由原先的4GB 内存扩展到惊人的 180亿 GB 容量,并支持 64 位浮点数和 32 位浮点数,高精度的数字计算,提供高达 82位的数据宽度。6 )利用 GR Stack 来降低 save/restore 需要的调用,减少 寄 存 器 使 用 数 量 , 使 用 的 是 Register Stacker Engine( RSE),使用全新的寄存器,总共 128 个 64位寄存器,其中 32 个是静态的, 96 个是动态的。7 )现有流水线采用的是顺序结构,一条运行结束后进行下一条, IA-64采用并行流水线结构,提高了工作效率。8 )高速运算功能,在平行运算时,提供了 2倍于运算频率的运算速度。

Page 107: 2.1   微处理器概述

第 2章 微处理器

( 1) IA-64架构的特点

1 ) 64 位实地址模式;2 )通过寄存器前缀( REX )来达到寄存器扩展;3 )增加 8 个新的通用寄存器( GPRs),代号为 R8到R15;4 )扩展通用寄存器的宽度到 64 位;5 )增加 8 个 128 位的 SSE 寄存器,标号为 XMM8 到XMM15;6 )新的 RIP关联数据地址模式;7 )单一字节寄存器地址。

Page 108: 2.1   微处理器概述

第 2章 微处理器

表 2-7显示的就是 x86-64架构中的模式结构图,并标示了适用情况。

返回本节

Page 109: 2.1   微处理器概述

第 2章 微处理器

THANK YOU VERY MUCH !

本章到此结束,谢谢您!

返回本章首页结束放映