微机原理

65
微微微微 微微微微微

Upload: tanek-romero

Post on 30-Dec-2015

39 views

Category:

Documents


4 download

DESCRIPTION

在此幻灯片插入公司的徽标 从“插入”菜单 选择图片 找到徽标文件 单击“确定” 重新设置徽标大小 单击徽标内任意位置。徽标外部出现的方框是“调整控点” 使用这些重新设置对象大小 如果在使用尺寸调整控点前按下 shift 键,则对象改变大小但维持原比例。. 微机原理. 制作者: 张幸. 第二章 8086系统结构. 第一节 8086 CPU 的结构 第二节 8086 CPU 引脚功能 第三节 8086/8088存储器组织 第四节 8086系统配置. 第一节 8086 CPU 的结构. 一、执行部件( EU) 和总线接口部件( BIU) - PowerPoint PPT Presentation

TRANSCRIPT

微机原理

制作者: 张幸

第二章 8086 系统结构第一节 8086CPU 的结构第二节 8086CPU 引脚功能第三节 8086/8088 存储器组织第四节 8086 系统配置

第一节 8086CPU 的结构一、执行部件( EU )和总线接口部件( BIU)

二、寄存器结构

一、执行部件( EU )和总线接口部件( BIU)

8086CPU 的内部结构由两部分组成:总线接口部件 BIU 、执行部件( EU),

采用流水线工作方式总线接口部件 BIU :负责取指令;存、取操作数执行部件( EU):负责分析指令、执行指令

AH ALBH BLCH CLDH DL

SPBPDISI

暂存器

ALU

标志寄存器

CSDSSS

内部寄存器

ESIP

总线控制电路

8086 总线

(16位 )

地址总线 (20位 )

数据总线(16位 )

1 2 3 4

指令队列EU

控制器

通用寄存器AXBXCXDX

ALU 数据总线

(16位 )

队列总线

(8位 )

执行单元 EU 总线接口单元 BIU

8086CPU 内部结构

1.BIU 总线接口部件组成:段寄存器 16 位 CS SS DS ES 指令指针( IP )存放指令的偏移地址 地址形成逻辑 完成逻辑地址到物理地址转换 指令队列 采用 FIFO 结构,预取指令 总线控制逻辑 发出总线控制信号

任务: 把段寄存器和 IP 相加形成 20 位有效地址 16*CS+IP

取指令 8086 如果队列中有 2 字节以上空格, EU 不要求总线,则 BIU 预取指令8088 如果队列中有 1 字节以上空格, EU 不要求总线,则 BIU 预取指令

EU 要求总线周期,有 EU 提供信号和地址来 源, BIU 进入总线,存取数据

2.EU 执行部件组成: ALU 算术逻辑运算单元 PSW 标志寄存器 存放运算结果特征 寄存器组 存放中间结果 EU 控制器 取指令控制、时序控制

访问 M和 I/O : 由 EU 通知 BIU 提供信号和地址来源

内部:根据指令要求对寄存器和标志管理

任务:从队列中取指令控制

二、寄存器结构

通用寄存器 指针和变址寄存器 段寄存器 指令指针 标志寄存器

寄存器是 CPU 内部的存储单元,可直接参与 CPU的运算 (ALU 运算和地址运算 ) ,其速度比内部存储器快。

1. 通用寄存器组

EAX AX AH AL

EBX BX BH BL

ECX CX CH CL

EDX DX DH DL

•可 8 位、 16 位使用 用于存放数据或地址•专用功能 BX—— 基址寄存器 AX—— 累加器

CX—— 计数器 AX, DX—— 用于乘、除

2. 指针和变址寄存器

这四个寄存器只能按 16 位操作

用于堆栈和变址操作计算操作数的有效地址

SP 堆栈指针

BP 基址寄存器

SI 源变址寄存器

DI 目的变址寄存器

用于堆栈操作

用于变址操作

ESP

EBP

ESI

EDI

3. 段寄存器 存放每一段的起始地址

CS 代码段寄存器

SS 堆栈段寄存器

DS 数据段寄存器

ES 附加段寄存器

用于存放程序 CS*16+IP—— 取指

用于存放堆栈 SS*16+SP—— 堆栈

用于存放数据 DS*16+SP, BP, SI

用于存放数据 ES*16+BP, DI

4. 指令指针 IP 每执行一条指令, IP 自动加 1 IP 指向偏移地址,有效地址 16*CS+IP 程序员不能直接修改 IP,(通过转移、调用、

中断、中断返回)

5. 标志寄存器 PSW标志寄存器用来存放运算结果的特征 6 位状态位 3 位控制位

OF DF IF TF SF ZF AF PF CF

状态位:

PF 奇偶标志: 若运算结果中“ 1” 的个数为偶数个, PF置 1

若运算结果中“ 1” 的个数为奇数个, PF清 0

AF 辅助进位标志:第 3 位向第 4 位有进位或借位 AF 置1

第 3 位向第 4 位无进位或借位 AF 清0ZF 零标志: 若运算结果为 0 ,则 ZF 为 1 ,否则 ZF

为 0

SF 符号标志: 若运算结果为正, SF 为 0

若运算结果为负, SF 为 1

OF 溢出标志:若运算结果产生溢出 OF 为 1 ,否则 OF 为 0

若最高位产生进位或借位,则 CF 置 1

若最高位无进位或借位,则 CF 清 0CF 进位标志:

5394H+(-777FH) 0101 0011 1001 0100 + 1000 1000 1000 0001 1101 1100 0001 0101

CF=0 PF=0 AF=0 ZF=0 SF=1 OF=0

状态位的特殊用法: CF 多精度数运算时提供向上的进位或借位 无符号数运算用于判断是否超过范围 无符号数大小的判别 在位处理模式用于判别每位的状态 PF 两机通信时用于数据校验

ZF 判断一个数是否为 0 判断两数是否相等 SF 判断一个数是正还是负 和OF 标志相结合用于判断带符号数大小 OF 判断带符号数是否超过范围 和 ZF 标志相结合用于判断带符号数大小

控制位:

DF=0 ,地址指针自动增加(由低到高)

DF=1 ,地址指针自动减少(由高到低)DF 方向标志

TF 陷阱标志 若 TF=1, CPU 处单步工作方式,每执行一条指令,产生一次单步中断

IF 中断标志 当 IF=1 时,允许中断, 当 IF=0 时,禁止中断

第二节 8086CPU 引脚功能8086 芯片共计 40 个引脚,主要分成三类:地址线数据线和控制线。外加电源。 CPU 芯片的引脚完全反映了该芯片的内部功能以及和外界部件的交互方式。学习这部分内容着重考察 CPU 内部的功能模块以及输入输出需求,掌握引脚的功能定义。 学习要求: 信号名称 信号含义 有效电平 输入 / 输出 状态

(两态 / 三态) 信号来源

GND

8086CPU

123456789

1011121314151617181920 21

22232425262728293031323334353637383940

AD 14AD 13AD 12AD 11AD 10AD 9AD 8AD 7AD 6AD 5AD 4AD 3AD 2AD 1AD 0

NMIINTRCLKGND RESET

READYTEST

)QS(INTA 1

ALE(QS 0 ))S(DEN 0

)S(RDT 1/)S(IOM 2/

)LOCK(WR

)GT/RQ(HOLD 0

RDMX/MN

7SBHE /A 19 /S6

A 18 /S5

A 17 /S4

A 16 /S3

AD 15

VCC (£«5 V)

)GT/RQ(HLDA 1

GND

8088CPU

123456789

1011121314151617181920 21

22232425262728293031323334353637383940

A 14A 13A 12A 11A 10A 9A 8

AD 7AD 6AD 5AD 4AD 3AD 2AD 1AD 0

NMIINTRCLKGND RESET

READYTEST

)QS(INTA 1

ALE(QS 0))S(DEN 0

)S(R/DT 1

)S(M/IO 2

)LOCK(WR

)GT/RQ(HOLD 0

RDMX/MN

)HIGH/(SS0

A 19 /S6

A 18 /S5

A 17 /S4

A 16 /S3

A 15

VCC (£«5 V)

)GT/RQ(HLDA 1

一、 8086 CPU 引脚及功能1. 地址总线和数据总线 *AD15~AD0 : 地址 / 数据总线 双向 三态 注: 8086/8088 地址线,数据线分时使用 总线的第一周期作地址线( 16bit宽 A15~A0) 其余周期 作数据线 (8086 16bit/8088 8bit)

* A19~A16/S6~S3 :地址 / 状态 三态 输出 注:这四条线分时使用复用 总线的第一周期作地址线 A19~A16 (与

A15~A0 构成 20bit) 其余周期 作状态线 S6~S3 注: 8086 访问存储器,使用 20 条地址线 8086 访问 I/O , 使用 16 条地址线

S4 S3 当前正在使用的段寄存器

0

0

1

1

0

1

0

1

ES

SS

CS或未使用任何段寄存器

DS

S6~S3 :状态线S6 :为低电平 S5 指示中断允许 IF 状态S4 S3 指示哪一个段寄存器

2. 控制总线 控制总线是传送控制信号的一组信号线,有 输入,输出。

*MN/MX 线:最小 / 最大方式控制线 若MN/MX=1, 8086 处于最小方式 若MN/MX=0, 8086 处于最大方式8086 具有两种系统配置方式:最小模式和最大模式,分别对应单机系统和多机系统。最小模式:由 8086 提供全部控制信号最大模式:由专用总线控制器 8288 提供总线控制信号在不同模式 8086 的有些引脚不完全相同

脚 最大 最小 脚 最大 最小28 S2 IO/M 27 S1 DT/R26 S0 DEN 30 RQ/GT0 HOLD24 QS1 INTA 31 RQ/GT1 HLDA25 QS0 ALE 29 LOCK WR

受MN/MX 影响的控制信号

*S2~S0 :总线周期状态信号 S2 S1 S0 操作类型 0 0 0 中断响应 0 0 1 读 I/O端口 0 1 0 写 I/O端口 0 1 1 暂停 1 0 0 取指 1 0 1 读存储器 1 1 0 写存储器 1 1 1 无效

最小方式:*IO/M 存储器 / 输入输出请求信号*DT/R 数据发送 / 接受端 *DEN 数据允许端

*RQ/GT0*RQ/GT1在最大方式下:这两条信号为总线的请求和回答信号 、两信号功能相同 、 RQ/GT0 优先、 双向

/RQ /GT 释放 在 T4 或下一个 T1 输出 /GT

在最小方式*HOLD 总线请求信号、 输入 、高电平有效*HLDA 总线响应信号、输出、高电平有效

最大方式:QS1 QS0 为指令队列状态信号、输出、高电平有效 QS1 QS0 队列状态 0 0 无操作 0 1 取指令队列第一字节 1 0 队列空 1 1 取指令队列后续字节

最小方式:INTA 中断响应信号、输出、低电平有效ALE 地址锁存允许信号、输出、高电平有效

LOCK 最大方式有效、总线优先封锁信号 三态、输出、低电平有效WR 最小方式有效、写信号、三态、输出、低电平有效

不受 MN/MX 影响的控制信号

*RD读信号 三态 输出 、低电平有效*READY 准备就绪信号 、输出、 高电平有效*INTR 中断请求信号、输入、高电平有效*NMI 非屏蔽中断请求信号、 输入 、正沿触发

*TEST 测试信号 、输入 、低电平有效*RESET 复位信号、 输入、 高电平有效

内 部 寄 存 器 状 态

标志寄存器

IP

CS

DS

SS

ES

指令队列缓冲器

其余寄存器

0000H

0000H

FFFFH

0000H

0000H

0000H

0000H

复位后, 8086CPU 的状态:

其它CLK :时钟信号,由 8284时钟产生VCC :电源 5V( 5%)VSS : 地

二、 8086 与 8088 引脚不同 数据线( 8086: AD15~AD0, 8088:

AD7~AD0) 存储器 / 输入输出控制线不同( 8086:M/

IO, 8088 IO/M) BHE/S7 不同( BHE 是总线高允许)

第三节 8086/8088 存储器组织

一、存储器分段管理二、物理地址的计算方法三、逻辑地址来源四、 8086/8088 存储器分体结构五、堆栈的概念

一、存储器地址的分段

矛盾:存储器地址空间1MB, 20bit 地址线;内部各寄存器和数据总线均为 16bit 。

¶Î 1

¶Î 2

¶Î 16

¶Î 3

00000H

0FFFFH10000H

1FFFFH20000H

2FFFFH

F0000H

FFFFFH

解决方法:将整个存储空间分为若干个逻辑段,每段内地址 16bit ,即最多地址空间 64KB 。

允许各逻辑段在整个存储空间浮动,段与段之间可以是连续的,也可以是分开的或重叠的。

00000H

逻辑段2<=64KB

逻辑段 1 起点逻辑段 2 起点

逻辑段 3 起点

逻辑段 4 起点

FFFFFH

逻辑段1<=64KB

逻辑段4<=64KB

逻辑段3<=64KB

每个段的起始地址必须能被 16整除( XXXX0H )

程序执行前,分别对相应的段寄存器CS, DS, SS,ES 置“段基值”,若程序长度大于64KB ,则可通过对 CS 送新的“段基值”将程序转移到新段中。

二、物理地址的计算方法

CPU 内部寄存器是 16 位,给出的地址也是 16 位,不能直接

用于 20 位地址空间的寻址,因此必须寻求一种将 16 位逻辑地址

转换成 20 位物理地址的方法。 逻辑地址:段基址和偏移地址组成,无符号 16 位二进制数,是程序设计是采用的地址。 物理地址:存储器中实际存放的地址 物理地址 =16* 段地址 + 偏移地址

段地址 0000

段内偏移 ( 有效 ) 地址 0000

物理地址 (20bit)

16bit

16bit

20bit

存放在相应的段寄存器中

程序指出

三、逻辑地址来源

常用搭配关系:(CS, IP), (DS, SI/DI/BX), (SS, SP/BP) 等等。

内存

IP

CS

SI、 DI、 BX

DS

SP、 BP

SS

数据段

堆栈段

代码段

四、 8086/8088 存储器分体结构

在 8088CPU 系统中,外部数据总线为 8 位,在存储器地址空间中数据存储格式以字节 (8bit) 为单位组织存储的, CPU 访问一次存储器,只读写一个字节,读写一个字要两次访问存储器。

而 8086CPU 的数据总线为 16 位, CPU 除了可以对一个字节寻址外,还必须能进行一个字的读写。即:如何组织数据存储格式使 CPU 访问一次存储器,获得一个字的数据。

硬件条件:( 1 )将 1M 的存储空间分成两个存储体:偶地址和奇地址存储体

0000000001

00002

00004

FFFFEFFFFF

00003

00005

512K*8bit

A0 =0

512K*8bit

A0=1

D0D7D8D15

( 2 )将数据总线的低 8 位与偶地址存储体数据线相连,数据总线的高 8 位与奇地址存储体数据线相连。( 3 )用地址线 A0和 BHE 信号选择存储体

8086

A1~A19

奇地址512K*8

D7~D0

偶地址 512K*8 D7~D0

D15~D8

D7~D0

SEL A0~A18 SEL A0~A18

A0BHE

BHE A0 操作 总线使用情况 0 0 从偶地址开始读 /写一个字 AD15--

AD0 0 1 从奇地址开始读 /写一个字节 AD15--

AD8 1 0 从偶地址开始读 /写一个字节 AD7--AD0 1 1 无效

14230H

1422FH

1422EH

1422DH

字 (16bit) 数 据 地 址1422EH低位在低地址,高位在高地址

H(高 8bit)

L(低 8bit)字节地址字节地址

存储器二个连续字节组成一个字,一个字中的每一个字节都有各自的字节地址。存入时以低位字节在低地址,高位字节在高地址的次序存放,字单元的地址以低位地址表示。若要求 8086在一个总线周期访问一个整字( 16 位)时,则该字的地址为偶地址(“对准存放”)。如果则该字的地址为奇地址(“未对准存放”),则 8086 要用两个连续的总线周期访问一个整字,每个周期访问一个字节。

数据存放格式:

(a) 读偶地址单元中的字节; (b) 读奇地址单元中的字节;

(c) 读偶地址单元中的字; (d) 读奇地址单元中的字

8088

A19~A0

1M*8 D7~D0

D7~D0

A0~A19

五、堆栈的概念

专用存储区域,暂时保存数据。“后进先出”( LIFO)

SS— 段基址, SP— 栈顶单元地址 堆栈生长方向:由高地址区向低地址区增长。 用途:中断,子程序调用,暂存或交换数据。

例如: SS=C000H,SP=1000H, 则

C0000H

C1000H SP

栈底

〈 64k

第四节 8086 系统配置

8086 具有两种系统配置方式:最小模式和最大模式,分别对应单机系统和多机系统。注意学习一般的计算机系统的基本配置方式,配置的策略,建立微型机系统的基本配置模型。

一、基本总线接口部件

二、最大方式和最小方式基本配置

一、基本总线接口部件

地址锁存器 8282/8283 数据总线缓冲器 8286/8287 时钟发生器 8284 总线控制器 8288 总线裁决器 8289

1. 地址锁存器 8282/8283

8282 (不反相)和 8283 (反相)具有三态输出的锁存缓冲器,用于锁存、缓冲、多路输出

8282 的逻辑图 8086 系统中, 8282 ( 8283 )用于地

址锁存器 连接: ALE——STB OE—— 接地

DI——AD DO——A (地址)

D QCLK

DI0

STB OE

DO0

DI1

DI2

DI7

DO1

DO2

DO7

2.数据总线缓冲器 8286/8287

8286 (不反相) 8287(反相)具有 8路双向缓冲电路,可实现 8 位数据的双向传送, 8286/8287具有很强总线驱动能力,可作为总线驱动器

8286 逻辑图 8086 系统中, 8286 ( 8287)为总线驱动器 连接: T——DT/R OE——DEN A——AD B——D (数据)

A1

A2

A7

A0

或 或

B0

B1

B2

B7

OE T

3.时钟发生器 8284 提供整个 CPU 芯片的时钟控制信号,是实现精确控制

的必要条件。 三大功能模块: 时钟信号发生器 OSC:14.318MHz CLK: 4.77MHz, 占空比 1/3 ,供 CPU PCLK: 2.385MHz,占空比 1/2,供外设 复位生成电路 就绪控制电路

4.总线控制器 8288

由于 8086 系统配置为多处理器系统,有多个具有自主性的总线控制设备,原先的一些引脚用来传送其他控制信号,因此需要增加独立的总线控制器来输出总线控制命令。引脚功能: 总线状态信号 控制输入信号 总线命令信号 总线控制信号

两种工作方式:I/O 总线方式:局部总线方式系统总线方式

5.总线裁决器 8289

当系统中存在多个对总线具有主控权的设备时,每个主控设备需要增设 8289来对总线进行合理分配,将总线使用权赋给优先权最高的设备。引脚功能: 状态信号: 8086CPU 输出 控制信号 多总线命令信号 系统信号

二、最大方式和最小方式基本配置

最小配置: 1 片 8284 、 3 片 8282 、 2片 8286

最大配置:除最小配置,外加 8288 、 8289

8284

8282

存储器

8286

I/O 接口

Vcc

Vcc

CLK

MN/MX RDWR

IO/M

ALEA 16-A19

AD0-AD15

DT/RDEN

INTA

INTR

READY

RESET

8086CPU

STB

T

OE

数据总线

地址总线

OE

8086 最小组态系统配置图

时钟

发生器

BHE

BHE