第二章 8086微处理器
第2章-8086微处理器part2
8086 CPU在最小模式中引脚定义
M/#IO:Memory/Input & Output,三态输出
存储器或I/O端口访问信号 。指示8086的访问对象,发 给MEM或I/O接口。 M/# IO为高电平时,表示 当前CPU正在访问存储器;
M/# IO 为低电平时,表 示当前CPU正在访问I/O端 口
数据驱动器数据流向控制信 号,输出,三态。
在8086系统中,通常采用 74LS245、8286或8287作 为数据总线的驱动器,用 DT/#R信号来控制数据驱动 器的数据传送方向。 当DT/#R=1时,进行数据 发送; 当DT/#R=0时,进行数据 接收。
8086 CPU在最小模式中引脚定义
READY:准备就绪信号 由外部输入,高电平有效 ,表示CPU访问的存储器 或I/O端口己准备好传送 数据。 当READY无效时,要求 CPU插入一个或多个等待 周期Tw,直到READY信 号有效为止。
S3 0 1 0 1
当前正在使用的段寄存器 ES SS CS或未使用任何段寄存器 DS
8086 CPU在最小模式中引脚定义
#BHE/S7:高8位总线允许(Bus High Enable)
T1:指示高8位数据总线上的数据 是否有效 (#BHE:AD0)配合:00时读写字 ,01时读写奇地址字节,10时读写 偶地址字节 其他T周期:输出状态信号S7(S7 始终为逻辑1,未定义) DMA方式下,该引脚为高阻态。
最大模式引脚信号(续)
LOCK# :总线封锁(优先权锁定) 三态输出,低电平有效。 LOCK有效时表示CPU不允许其它总线主控者占用 总线。 ห้องสมุดไป่ตู้ 这个信号由软件设置。 • 当在指令前加上LOCK前缀时,则在执行这条 指令期间LOCK保持有效,即在此指令执行期 间,CPU封锁其它主控者使用总线。 在保持响应期间,LOCK#为高阻态。
第二章 8086 CPU[2-3]
应用例子:发光二极管接口
+5V
D0~D7 A0~A15
IOW
20:49
D|0 Q0
1
R
D7
...
...
...
...
译
码
CP
器
R
Q7
1
74LS273
12
§2-4 8086的工作模式和总线操作
3、时钟发生器8284A
产生CLK信号,作为8086CPU的内部和外部的时间基准信号 提供系统时钟(CLK)、READY同步和RESET同步信号
第二章 8086 CPU
内容提要
引言 8086 CPU的内部结构 8086/8088 CPU的引脚功能 8086的存储器组织 8086的工作模式和总线操作
20:49
2
§2-4 8086的工作模式和总线操作
1、电源要求
8086/8088微处理器都是用+5.0V电源电压,其允许偏差为±10%。
OE
地址总线
存储器
I/O芯片
20:49
T 74LS245 /8286/82 87
OE
数据总线
15
§2-4 8086的工作模式和总线操作
2.4.3 总线操作时序
相关概念介绍
➢时钟周期
➢总线周期
➢指令周期
➢时序 ➢时序图
时序就是指系统中各总线信号(即地址、 数据和控制信号)产生的先后次序。
20:49
16
在8086/8088CPU中,一个总线周期至少包括4个时钟周期。
1~2个
若干个
T1 T2 T3 T4 Ti Ti T1 T2 T3 Tw Tw Tw T4 Ti Ti
第2章8086微处理器与汇编语言(下)
第二章微处理器与汇编语言(下)
2.3 指令系统
2.4 汇编语言
2.5 汇编语言程序设计
2.6 系统功能调用
2.7 宏指令、条件汇编及上机过程 2.8 模块化程序设计与混合编程
三、指令系统
1. 传送类指令
2. 算术运算类指令
3. 位操作类指令
4. 串操作指令
5. 循环和转移指令 6. 子程序的调用和返回指令 7. 输入输出指令
4. 表达式与运算符 (3)关系运算符 表2-4-3列出的关系运算符。
2. 汇编语言数据
(2)变量(续) ④ 带DUP表达式 DUP是定义重复数据操作符。格式如下:
表达式1是重复次数,表达式2是重复的内 容。例如: D_STR DB3)标号
标号是一条指令目标代码的符号地址。具 有以下三个属性: ● 段属性(SEG) ● 偏移量属性(OFFSET)
1. 传送类指令 (4)标志传送指令(续)
③
标志位进栈
格式:PUSHF
将标志寄存器压入堆栈。标志寄存器中各 标志位本身不受影响。
④
标志位出栈
格式:POPF
将堆栈顶部的内容弹入标志寄存器。
1. 传送类指令 (5)地址传送指令 ① 装入有效地址 格式:LEA DEST,SRC 指令对标志寄存器各位无影响。 ② 装入地址指针 格式:LDS DEST,SRC 或 LES DEST,SRC 指令对标志寄存器各位无影响。
第二章 8086微处理器与汇编语言
(下)
学习目标
1、识记80X86汇编语言指令集、伪指 令和宏、MASM表达式。 2、理解程序设计中顺序、分支、循环、 子程序的基本结构,以及实现方法。 3、识记汇编语言编程、上机调试的基 本方法。 4、识记DOS功能调用和BIOS中断调 用的方法和应用,以及混合编程的概念。
【教学课件】第2章 8086微处理器
控制 电路
局部总线 接口
SYSB/RESB
1
20
2
19
3
18
4
17
5
8289 16
6
15
7
14
8
13
9
12
10
11
INIT
BCLK BREQ BPRN BPRO BUSY CBRQ
总线仲裁 信号
AEN
V CC S1 S0 CLK
LOCK
CRQLCK ANYRQST
AEN CBRQ BUSY
2021/8/17
DEN CEN
INTA IORC AIOWC IOWC
2021/8/17
23
2.总线仲裁控制器8289
仲裁电路
状态
S2
信号
S1
S0
状态 译码器
多路总线 接口
控制 输入
LOCK CLK
CRQLCK
RESB ANYRQST
IOB
S2 IOB
RESB BCLK INIT BREQ BPRO BPRN
GND
数据总线
2021/8/17
S0
S1
S2
INTR R Q / G T0
R Q / G T1
8288 总线控制器
IN T A
8259A 及有关电路
控制总线 中 断 请 求
22
1.总线控制器8288
状态
S2
信号
S1
S0
状态 译码器
控制 输入
CLK
AEN CEN IOB
控制 电路
命令 信号 发生器
控制信号 发生器
2.3.1 最小模式和最大模式的概念
第二章 8086体系结构
8086微处理器概览
标志位寄存器(FR) • 16位标志位寄存器FR,共有9个
标志位。其中6个是状态标志位, 3个是控制标志位,用于反映 CPU运行过程中的某些状态特征。
标志位寄存器
3、标志寄存器FR
标志寄存器FR中共有9个标志位,可分成两类: ➢状态标志 表示运算结果的特征,它们是 CF、PF、AF、 ZF、SF和OF ➢控制标志 控制CPU的操作,它们是IF、DF和TF。
IP :BIU要取指令的地址。
IP
三、8086CPU的管脚及功能
8086是16位CPU。它采用高性能的N— 沟道,耗尽型负载的硅栅工艺(HMOS)制 造。由于受当时制造工艺的限制,部分管 脚采用了分时复用的方式,构成了40条管 脚的双列直插式封装
1、 8086的两种工作方式
最小模式:系统中只有8086一个处理器,所有的控制信号都 是由8086CPU产生(MN/MX=1)。
最大模式:系统中可包含一个以上的处理器,比如包含协处 理器8087。在系统规模比较大的情况下,系统控 制信号不是由8086直接产生,而是通过与8086配 套的总线控制器等形成(MN/MX=0)。
三总线结构 数据线DB 地址线AB 控制线CB
微机的三总线结构
➢ 最小模式下的引脚说明
( 1 ) AD15 ~ AD0 (Address Data Bus):
堆栈指针用于存放栈顶的逻辑偏移地 址,隐含的逻辑段地址在SS寄存器中。
寄存器的特殊用途和隐含性质
在指令中没有明显的标出,而这些寄存器参 加操作,称之为“隐含寻址”。
具体的:在某类指令中,某些通用寄存器有指 定的特殊用法,编程时需遵循这些规定,将某些 特殊数据放在特定的寄存器中,这样才能正确的 执行这些指令。采用“隐含”的方式,能有效地 缩短指令代码的长度。
第二章 8086微处理器(1)
16位微处理器概述
5. 第五代微处理器 • (1993年)Pentium(奔腾)— 32位微处理器 - 5级超标量结构、分支预测技术 64条数据线、32条地址线 - 64条数据线、32条地址线 - 常用指令硬件化,使用微程序设计
16位微处理器概述
6. 第六代微处理器 • Pentium Pro(高能奔腾) — 32位 - 64条数据线、36条地址线 64条数据线、36条地址线 - 实现了动态执行技术(乱序执行) • (1997年)Pentium II(奔腾2)— 32位微处理器 - 是Pentium Pro + MMX - 双独立总线结构 • (1999年)Pentium III(奔腾3) — 32位微处理器 - 增加了70条SSE指令(流水式单指令多数据扩充) - 首次内置序列号
3)方向标志DF(Direction Flag) 用于串操作指令中的地址减量修改(DF=1)还是增量修改 (DF=0)。 两条专门的指令可以置“1”或置“0”分别为STD,CLD。 M1 (ABC0) M2
低
SI-3 SI-2 SI-1 SI
0 C B A
0 0 C C B A A
DI-3 DI-2 DI-1 DI
高 DF=1 DF=0
(2)总线接口部件BIU )总线接口部件BIU
功能: 负责与内存(M)、输入/输出(I/O)接口之间指令或数据的传送: 1) 从内存M取指令存入指令队列,供EU使用。 2)EU执行指令需读数据/送结果时,都经过BIU。
EU
BIU存中由于各部分存放的数据性质不同,分为代码段、数据段、 堆栈段、扩展数据段。
20
差 别
2、8086与8088的编程结构 、 与 的编程结构
∑
内 部 寄 存 器
第二章-8086微处理器
答案:A
思考题
8086/8088的状态标志有 A)3 B)4 C)5 答案:D 个。 D)6
思考题
8086/8088的控制标志有 A)3 B)4 C)5 答案:A 个。 D)6
三、引脚信号和功能(图2-5 )
8086总线周期的概念: 为了取得指令或传送数据,就需要CPU的总线接 口单元(BIU)执行一个总线周期。 一个最基本的总线周期由4个时钟周期组成。 习惯上将4个时钟周期分别称为4个状态,即T1状 态、T2状态、T3状态和T4状态。 图2-17
2.方向标志DF(Direction Flag) 用于串操作指令中的地址增量修改(DF =0)还是减量修改(DF=1)。 STD使DF=1 CLD使DF=0
(三)标志寄存器-控制标志(续)
3.跟踪标志TF(Trap Flag) 若TF=1,则CPU按跟踪方式(单步方式) 执行程序,否则将正常执行程序。
思考题
指令队列的作用是 A)暂存操作数地址 。 B)暂存操作数
C)暂存指令地址
D)暂存预取指令 答案:D
思考题
8086的指令队列的长度是 A)4个 B)5个 C)6个 D)8个 字节。
答案: C
思考题
8088的指令队列的长度是 A)4个 B)5个 C)6个 D)8个 字节。
答案:A
思考题
第二章 8086/8088微处理器
8086/8088微处理器的结构 8086/8088典型时序分析
简 介
8086:16位微处理器 数据总线宽度16位:可以处理8位或16位数据 地址总线宽度20位:可直接寻址1MB存储单元和 64KB的I/O端口 8088:准16位处理器 内部寄存器及内部操作均为16位,外部数据总线8位 8088与8086指令系统完全相同,芯片内部逻辑结构、芯片引 脚有个别差异。 设计8088的目的主要是为了与Intel原有的8位外围接口芯片 直接兼容
第2章 16位微处理器8086
计算机原理讲义
执行单元EU
4) 标志寄存器 FLAG
6位状态标志,3位控制标志IF、DF、TF,剩下7位保留 位状态标志, 位控制标志IF、DF、TF,剩下7 IF 15 14 13 12 11 10 9 IF 8 7 6 5 4 AF 3 2 PF 1 0 CF
OF DF
TF SF ZF
Flag) 位标志, CF(Carry Flag)进(借)位标志,加法运算最高位产生进位或减法运算 最高位产生借位, 否则置0 最高位产生借位,则CF置1,否则置0 Flag)辅助进位标志,加法运算时第3位往第4 AF(Auxiliary Carry Flag)辅助进位标志,加法运算时第3位往第4位 有进位,或减法运算时第3位往第4位有借位, AF置 否则置0 有进位,或减法运算时第3位往第4位有借位,则AF置1,否则置0 Flag)零标志, 若当前运算结果为零, ZF置1,否则置 否则置0 ZF(Zero Flag)零标志, 若当前运算结果为零, 则ZF置1,否则置0 SF( Flag)符号标志,与运算结果最高位相同,若为负数, SF(Sign Flag)符号标志,与运算结果最高位相同,若为负数,则SF 否则置0 SF指示了当前运算结果是正还是负 置1,否则置0,SF指示了当前运算结果是正还是负 Flag)溢出标志,有符号数算术运算结果溢出, OF置 OF(Overflow Flag)溢出标志,有符号数算术运算结果溢出,则OF置1, 否则置 否则置0 PF(Parity Flag)奇偶标志,运算结果低8位所含1的个数为偶数则PF Flag)奇偶标志,运算结果低8位所含1的个数为偶数则PF 置1,否则置0 否则置 计算机原理讲义
总线接口单元(BIU) 一. 总线接口单元(BIU) 1. 具体功能
第2章8086微处理器1-2
忙碌
1)CPU执行指令时总线处于空闲状态 ) 执行指令时总线处于空闲状态 2)CPU访问存储器 存取数据或指令 时要等待总线操作的完成 访问存储器(存取数据或指令 ) 访问存储器 存取数据或指令)时要等待总线操作的完成 缺点: 缺点:CPU无法全速运行 无法全速运行 解决:总线空闲时预取指令, 解决:总线空闲时预取指令,使CPU需要指令时能立刻得到 需要指令时能立刻得到
6
结论
指令预取队列的存在使EU和 指令预取队列的存在使 和BIU两个部 两个部 分可同时进行工作, 分可同时进行工作,从而 提高了CPU的效率; 降低了对存储器存取速度的要求
7
8088/8086 CPU的特点
采用并行流水线工作方式 对内存空间实行分段管理: 对内存空间实行分段管理:
每段大小为16B~ 每段大小为16B~64KB 16B 用段地址和段内偏移实现对1MB空间的寻址 用段地址和段内偏移实现对1MB空间的寻址 设置地址段寄存器指示段的首地址
支持多处理器系统; 支持多处理器系统; 片内没有浮点运算部件, 片内没有浮点运算部件,浮点运算由数学协处 理器8087支持(也可用软件模拟) 理器 支持(也可用软件模拟) 支持 注:80486DX以后的CPU均将数学协处理 器作为标准部件集成到CPU内部
8
二、8086CPU的内部结构
8086内部由两部分组成: 内部由两部分组成: 内部由两部分组成 执行单元(EU) 执行单元( ) 总线接口单元(BIU) 总线接口单元( )
2
指令预取队列(IPQ)
指令的一般执行过程: 指令的一般执行过程: 取指令 指令译码 读取操作数 执行指令 存放结果
3
串行工作方式:
8086以前的CPU采用串行工作方式: 8086以前的CPU采用串行工作方式: 以前的CPU采用串行工作方式
第2章8086CPU的原理
(2)DS:数据段段寄存器,在数据段寻址时,与BX、SI、DI 合用。 (3)SS:堆栈段段寄存器,在栈操作时,与SP合用对栈顶数据进 行存取。在对栈中数据存取时与BP合用。 (4)ES:附加数据段段寄存器,在串操作时,存放目标串,与DI 合用。也可以用来存放数据。 2 标志寄存器FLAGS FLAGS是16位寄存器,包含9个标志,标示CPU的状态和某些操 作特性。
其中:AH、AL寄存分别表示AX寄存器的高8位和低8位,如下图: 1Fh AH 50h AL AX
AH=1Fh AL=50h AX=1F50h
但AH和AL都可以作为8位的寄存器独立使用, 如 MOV BL,AH 指令执行后, BL=1Fh
其余的8位寄存器如上所述。 8086的4个数据寄存器,通常都是用来存储供CPU处理的数据或 保存结果的,但在特定的场合里,它们又有自己的特殊用途。 (1)AX、AL---累加器:在乘法、除法和符号扩展指令中,有一 个操作数预先放在累加器中;在I/O操作时,通过它CPU与接口交 换数据。累加器也是所有寄存器中执行速度最快的。
IF 中断允许标志: IF 的值决定CPU是否响应外部的可屏蔽中断。 当 IF=1 时,CPU可以响应外部的可屏蔽中断,否则相反。IF 的值 由专门的指令控制,即:STI 指令置 IF=1 CLI 指令置 IF=0 当 IF=0 时,CPU不能屏蔽非屏蔽中断和CPU内部中断。 TF 跟踪标志: TF=1 时,CPU进入单步程序执行方式,TF的控 制没有专用的指令,要通过其它方式设置。
图(3.5)8086/8088的引脚信号
最小方式 用于单个微处理器组成的系统,由8086产生系 统所需的全部控制信号。 最大方式 用于多处理器系统中,8086不直接提供控制信 号 。
[工学]第2章8086微处理器与汇编语言上
表2-1-2 段寄存器和现行段的对应关系
寄存器 CS DS SS ES
含义 代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器
隐含识别的现行段 现行代码段 现行数据段
现行堆栈段 现行附加段
2021/8/26
19
2.寄存器组
(2)段寄存器组(续)
8086通过CS得到执行指令的段基地址,加上 指令指针IP中的指令偏移量,产生20位的存储 器地址。例如CS=4000H、IP=004AH。那么, 20位物理地址应该是4004AH单元。
2021/8/26
22
2.寄存器组
(4)标志寄存器(续)
① 条件标志位(续)
● AF辅助进位标志位:在运算结果的低4位向 高4位有进位或借位时,AF为“1”;反之, AF为“0”。
● OF溢出标志位:运算结果超出机器表示范 围时,OF为“1”;否则,OF为“0”。带符 号数的操作,若字节运算结果超过-128~+127 范围或者字运算结果超过-32768~+32767范围 时,OF为“1”。
2021/8/26
15
2.寄存器组
(1)通用寄存器组
通用寄存器组由八个16位寄存器构成,按用 途可分为数据寄存器和指针/变址寄存器两大 类 。它们都可以参加算术和逻辑运算。
① 数据寄存器
由四个16位的AX、BX、CX和DX寄存器组 成。每个寄存器可作为一个独立的16位寄存器 使用,也可以分别编址成两个8位寄存器使用。 这样,每个数据寄存器对应的高8位寄存器是 AH、BH、CH和DH;低8位寄存器是AL、BL、 CL和DL。
指令队列状态(输出)。
31
第四节 总线周期
4.总线周期
8086的时钟脉冲(CLK)由时钟发生器(如 8284A)来提供,例如若机器的主频为10MHz, 那么一个时钟周期为100ns。
第二章 8086 8088微处理器
1、指令队列缓冲器 2、地址加法器和段寄存器
3、 16位的指令指针寄存器IP
IP中存放的是BIU要取的下一条指令(字 节)的偏移地址,BIU取过后,IP自动加1。 与IP相配的段寄存器是代码段寄存器CS。
扬州大学信息工程学院
第一节 8086/8088 微处理器的结构 一、8086/8088的内部结构
扬州大学信息工程学院
(一)最小工作模式
在最小工作模式,8086/8088 第24~31引脚的含义: 5、M/IO存储器/输入,输出控 制信号,输出。 为1时与存储器数椐传送; 为0时输入,输出接口进 行数据传送。T1~T4有效
6、WR写信号,输出。 在总线周期的T2~T4状态 输出低电平。 7、HOLD总线保持请求信号, 输入。其它主模块要求占用总线 时通过HOLD向CPU发高电平请 求。若“允许”,CPU在T4状态 从HLDA发出高电平后,就得到 总线控制权。
扬州大学信息工程学院
第二章 8086/8088微处理器
第一节 8086/8088 微处理器的结构 一、8086/8088的内部结构
从功能上,8086分为两部分:
1、 总线接口单元BIU (Bus Interface Unit)。 2、执行单元EU (Execution Unit)。 说明:这两个单元在CPU内部担负着不同的任务。 两个单元并行地工作,能使大部分取指令操作与执 行指令操作重叠的进行 (即所谓“流水线”结构)。
扬州大学信息工程学院
第一节8086/8088的微处理器结构
三、8086/8088的引脚信号和功能 (一)地址/数椐总线
AD15~AD0(复用的)
总线周期的状态 T1:输出地址; T2:浮置成高阻; T3:输入/输出数椐;
计算机原理_2 8086微处理器
READY RDY1 AEN1 RDY2 AEN 2
3 复位信号产生 输入RES经过斯密特触发器分频以后,在时钟同频下产生RESET信号 送给CPU的RESET引脚,进行复位。 通常有以下两种情况会产生硬件复位信号: a 电源开关打开 b 按下机箱上的Reset按钮 电路如下所示:
例:CS的内容是89ABH,IP 的内容是0201H,则生成的地
址是89AB0H+0201H=89CB1H
20位的地址加法器 段地址左移4位+偏移量 → 20位的实际物理地址 段地址*16+偏移量 → 20位的实际物理地址 6个字节的指令队列
执行部件(EU)
16位的算术逻辑单元ALU 4个16位的通用寄存器 AX,BX,CX,DX,它们又可以分成8个8位的寄存器使用 AH,AL,BH,BL,CH,CL,DH,DL AL AH 4个16位的专用寄存器 SP——堆栈指针寄存器 BP——基址指针寄存器 SI ——源变址寄存器 DI ——目的变址寄存器
(二)时钟发生电路8284A 1 产生时钟信号 OSC 内部时钟同频信号 CLK 内部时钟三分频信号,占空比1/3 PCLK 内部时钟六分频信号,占空比1/2 CSYNC 外部时钟的同频信号 X1、X2 外接晶体,供内部振荡器产生震荡频率 EFI 外接时钟入端 F/C 时钟输入选择 PC机中14.31818MHz的外接晶体 CLK=4.77MHz 2 准备就绪信号 ASYNC为低电平时,表示READY输出时插入一个时钟周期延时。
三、常用的数据管理方式
堆
栈
LIFO FIFOቤተ መጻሕፍቲ ባይዱ
1
2
堆栈:按照后进先出(LIFO)的原则组织的存储器空间(栈)。
第2章 8086微处理器1
例3 已知逻辑地址,指出下列存储器地址的段内偏 移量、段基址、物理地址。 1)1123H:0015H 2)1124H:0005H
一个物理地址可以对应多个逻辑地址
例如:设当前有效的代码段、数据段、堆栈段、附加段的段基址分别 为1066H、251BH、900CH、F001H,则各段在内存中的分配情况如 图2-5所示。
VCC AD15 A16/S3 A17 /S4 A18 /S5 A19 /S6 (HIGH) (SSO) MN/MX RD RQ/GT0 (HOLD) RQ/GT1 (HLDA) LOCK (WR) S2 (IO/M) S1 (DT/R) S0 (DEN) QS0 (ALE) QS1 (INTA) TEST READY RESET
六个状态标志含义如下: 1.进位标志CF或C 运算结果的最高位产生进位或借位时,则 CF=1,否则CF=0(字节操作D7、字操作D15、 双字D31) 2.奇偶标志PF 运算结果中1的个数为偶数,则PF=1,否 则PF=0 3.辅助进位标志AF 运算时当 D3 向D4 有进位或有借位时 ,则 AF=1,否则AF=0
DS:数据段寄存器 ES:附加段寄存器
数据段和附加段用来存放操作数
SS:堆栈段寄存器
堆栈段用于存放返回地址,保存寄存器内容, 传递参数
3、控制寄存器
IP:指令指针寄存器,其内容为下一条 要执行的指令的偏移地址 FLAGS:标志寄存器
状态标志:存放运算结果的特征
控制标志:控制某些特殊操作
四、存储器寻址
物理地址
8086:20根地址线,可寻址220(1MB)
个存储单元,1M字节的存储器单元编 址为00000H~FFFFFH(16进制) CPU送到AB上的20位的地址称为物理 地址
第2章 8086微处理器2
等待周期中仍然要监测 READY信号,确定 是否继续插入等待周期
3. 控制总线(续)
TEST*
测试,输入、低电平有效 使用协处理器8087时,通过该引脚和WAIT 指令,可使8088与8087的操作保持同步
3. 控制总线(续)
INTR(Interrupt Request)
可屏蔽中断请求,输入、高电平有效 有效时,表示请求设备向 CPU 申请可屏蔽 中断 该中断请求是否响应受控于 IF (中断允许 标志)、可以被屏蔽掉
3. 控制总线(续)
NMI(Non-Maskable Interrupt)
不可屏蔽中断请求,输入、上升沿有效 有效表示外界向CPU申请不可屏蔽中断 该中断请求不能被 CPU 屏蔽,所以优先级 别高于INTR(可屏蔽中断)
主机与外设进行数据交换通常采用可屏蔽中断
不可屏蔽中断通常用于处理掉电等系统故障
引脚小结
CPU 引脚是系统总线的基本信号,除电源 和地外可分成三类信号: 16位数据线:D0 ~ D16 20位地址线:A0 ~ A19 控制线:
ALE、IO/M*、WR*、RD*、READY INTR、INTA*、NMI,HOLD、HLDA RESET、CLK
2.2
8086/8088微处理器外部引脚及系统构成
低 高
RD* 低
高 低
I/O写
低
低
高
读写控制信号的组合(续)
M/IO*
I/O读 I/O写 存储器读 存储器写
5. 其他控制线(24-31脚)
HOLD
总线保持(即总线请求),输入、高电平 有效 有效时,表示总线请求设备向 CPU 申请占 有总线 该信号从有效回到无效时,表示总线请求 设备对总线的使用已经结束,通知 CPU 收 回对总线的控制权
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章8086/8088微处理器及其系统结构内容提要:1.8086微处理器结构:CPU内部结构:总线接口部件BIU,执行部件EU;CPU寄存器结构:通用寄存器,段寄存器,标志寄存器,指令指针寄存器;CPU引脚及其功能:公用引脚,最小模式控制信号引脚,最大模式控制信号引脚。
2.8086微机系统存储器结构:存储器地址空间与数据存储格式;存储器组成;存储器分段。
3.8086微机系统I/O结构4.8086最小/最大模式系统总线的形成5.8086CPU时序6.最小模式系统中8086CPU的读/写总线周期7.微处理器的发展学习目标1.掌握CPU寄存器结构、作用、CPU引脚功能、存储器分段与物理地址形成、最小/最大模式的概念和系统组建、系统总线形成;2.理解存储器读/写时序;3.了解微处理器的发展。
难点:1.引脚功能,最小/最大模式系统形成;2.存储器读/写时序。
学时:8问题:为什么选择8088/8086?•简单、容易理解掌握•与目前流行的P3、P4向下兼容,形成x86体系•16位CPU目前仍在大量应用思考题1、比较8086CPU与8086CPU的异同之处。
2、8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么?3、CPU的运算功能是由ALU实现的,8086CPU中有几个ALU?是多少位的ALU?起什么作用?4、8086CPU有哪些寄存器?各有什么用途?标志寄存器的各标志位在什么情况下置位?5、8086CPU内哪些寄存器可以和I/O端口打交道,它们各有什么作用?6、8086系统中的物理地址是如何得到的?假如CS=2400H,IP=2l00H,其物理地址是多少?思考题1.从时序的观点分析8088完成一次存储器读操作的过程?2.什么是8088的最大、最小模式?3.在最小模式中,8088如何产生其三总线?4.在最大模式中,为什么要使用总线控制器?思考题1.试述最小模式下读/写总线周期的主要区别。
2.CPU响应中断时,为什么要执行两个连续的中断响应周期?3.当8086微处理器响应总线请求发出HLDA信号后,有哪些引脚信号处于高阻?4.8086/8088微处理器响应总线请求发出HLDA信号后,执行部件EU会立即停止操作吗?为什么?5.在8086系统中,地址/数据复用信号是如何区分的?6.总线周期的含义是什么? 8086/8088的基本总线周期由几个时钟组成?如果一个CPU的时钟频率为4.77MHz,那么它的一个时钟周期为多少?一个基本总线周期为多少?若主频为l5MHz呢?7.在最小模式总线写周期的T1、T2、T3、T4状态,8086CPU分别执行什么动作?思考题1.在8086系统的最大模式下为什么一定要用总线控制器?试述总线控制器8288的主要功能,并说明它有哪些输入和输出信号?试述8086系统中时钟发生器8284A的主要作用以及可提供的几种时钟信号。
作业:一、问答题:1、8088微处理器的逻辑地址是由哪几部分组成的?怎样将逻辑地址转换为物理地址?2、如何设置用户堆栈,在压栈和退栈操作时,堆栈指针SP的内容如何变化?3、如果一个程序在执行前(CS)=0A7F0H,(IP)=2B40H,该程序的起始地址是多少?4、如果一个堆栈是从地址1250:0100开始,(SP)=0052H,试回答以下问题:(1)SS段的段地址是多少?(2)栈顶的物理地址是多少?(3)栈底的物理地址是多少?存入字数据后,SP的内容是什么?5、有两个16位字1234H和5678H分别存放在02000H为首地址的存储单元中,试用图表示存储数据的情况。
二、填空题1、8088CPU内部结构按功能分为两部分,即和。
一、8086/8088CPU的结构1. 8086/8088 CPU的内部结构1)指令执行部件指令执行部件EU主要由算术逻辑运算单元ALU、标志寄存器FR、通用寄存器组和EU 控制器等四个部件组成。
其主要功能是执行命令。
一般情况下指令顺序执行,EU可不断地从BIU指令队列缓冲器中取得执行的指令,连续执行指令,而省去了访问存储器取指令所需的时间。
如果指令执行过程中需要访问存储器存取数据时,只需将要访问的地址送给BIU,等待操作数到来后再继续执行。
遇到转移类指令时则将指令队列中的后续指令作废,等待BIU重新从存储器中取出新的指令代码进入指令队列缓冲器后,EU才能继续执行指令。
这种情况下,EU和BIU的并行操作回受到一定的影响,但只要转移类指令出现的频率不是很高,两者的并行操作仍然能取得较好的效果。
EU中的算术逻辑运算部件ALU可完成16位或8位二进制数的运算,运算结果一方面通过内部总线送到通用寄存器组或BIU的内部寄存器中以等待写到存储器;另一方面影响状态标志寄存器FR的状态标志位。
16位暂存器用于暂时存放参加运算的操作数。
EU控制器则负责从BIU的指令队列缓冲器中取指令、分析指令(即对指令译码),然后根据译码结果向EU内部各部件发出控制命令以完成指令的功能。
2)总线接口部件BIU总线接口部件BIU主要有地址加法器、专用寄存器组、指令队列缓冲器以及总线控制电路等四个部件组成。
其主要功能是负责完成CPU与存储器或I/O设备之间的数据传送。
BIU中地址加法器将来自于段寄存器的16位地址段首地址左移4位后与来自于IP寄存器或EU提供的16位偏移地址相加(通常将“段首地址:偏移地址”称为逻辑地址),形成一个20位的实际地址(又称为物理地址),以对1MB的存储空间进行寻址。
具体讲:当CPU执行指令时,BIU根据指令的寻址方式通过地址加法器形成指令在存储器中的物理地址,然后访问该物理地址所对应的存储单元,从中取出指令代码送到指令队列缓冲器中等待执行。
指令队列一共6个字节(8088的指令队列为4个字节),一旦指令队列中空出2个(8086中)或一个(8088中)字节,BIU将自动进入读指令操作以填满指令队列;遇到转移类指令时,BIU将指令队列中的已有指令作废,重新从新的目标地址中取指令送到指令队列中;当EU 需要读写数据时,BIU将根据EU送来的操作数地址形成操作数的物理地址,从中读取操作数或者将指令的执行结果传送到该物理地址所指定的内存单元或外设端口中。
BIU的总线控制电路将CPU的内部总线与外部总线相连,是CPU与外部交换数据的通路。
对于8086而言,BIU的总线控制电路包括16条数据总线、20条地址总线和若干条控制总线;而8088的总线控制电路与外部交换数据的总线宽度是8位,总线控制电路与通用寄存器组之间的数据总线宽度也是8位,而EU内部总线仍是16位,这也是将8088称为准16位的微处理器的原因。
3)8086/8088 CPU寄存器阵列(寄存器组)8086/8088 CPU中有14个16位的寄存器,按用途分为四类:①通用寄存器:8个,分为两组:数据寄存器:累加器AX、基址寄存器BX、计数寄存器CX、数据寄存器DX,每个数据寄存器可存放16位操作数,也可拆成两个8位寄存器,用来存放8位操作数,AX、BX、CX、DX分别可拆成AH、AL、BH、BL、CH、CL、DH、DL,其中AH、BH、CH、DH 为高八位,AL、BL、CL、DL为低八位;指针和变址寄存器:堆栈指针SP、基址指针BP、源变址寄存器SI、目的变址寄存器DI,可用来存放数据和地址,但只能按16位进行存取操作。
通用寄存器的特定用法见表2.1。
②段寄存器:4个代码段寄存器CS:用于存放当前代码段的段地址;数据段寄存器DS:用于存放当前数据段的段地址;附加段寄存器ES:用于存放当前附加段的段地址;堆栈段寄存器SS:用于存放当前堆栈段的段地址。
③专用寄存器:两个标志寄存器FR:仅定义了9位,其中6位用作状态标志,3位用作控制标志。
a. 状态标志位用来反映EU执行算术或逻辑运算的结果特征,6个状态位如下:进位标志CF:当加法运算有进位,减法运算有借位时,CF=1,否则CF=0;辅助进位标志AF:在字节操作时,低4位向高4位有进位(加法)或有借位(减法);在字操作时,低字节向高字节有进位(加法)或有借位(减法)时,则AF=1,否则AF=0。
奇偶校验标志PF:当运算结果低8位“1”的个数为偶数时,PF=1,否则PF=0;零标志ZF:当运算结果位0时,ZF=1,否则ZF=0;溢出标志OF:在有符号数的算术运算时,当运算结果有溢出时,OF=1,否则OF=0;符号标志SF:在有符号数的算术运算时,当运算结果为负时,SF=1,否则SF=0;b. 控制标志位用来控制CPU的操作,3个标志位如下:方向标志DF:当DF=0时,在串操作指令中,进行自动增址操作;当DF=1时,在串操作指令中,进行自动减址操作;中断允许标志IF:当IF=0时,禁止CPU响应可屏蔽中断;当IF=1时,允许CPU响应可屏蔽中断;单步陷阱标志TF:当IF=1时,表示CPU进入单步工作方式;当IF=0时,表示CPU正常执行程序。
8086/8088 CPU寄存器结构见图2.1。
指令指针IP:用来存放要取的下一条指令在当前代码段中的偏移地址,程序不能直接访问IP,在程序运行过程中,BIU可修改IP中内容。
二、8086/8088 CPU芯片的引脚及其功能8086/8088 CPU具有40条引脚,双列直插式封装,采用分时复用地址数据总线,从而使8086/8088 CPU用40条引脚实现20位地址、16位数据、控制信号及状态信号的传输。
8086/8088 CPU芯片可以在两种模式下工作,即最大模式和最小模式。
最大模式:指系统中通常含有两个或多个微处理器(即多微处理器系统),其中一个主处理器就是8086/8088 CPU,另外的处理器可以是协处理器I/O处理器。
最小模式:在系统中只有8086/8088一个微处理器。
1. 两种模式公用的引脚的定义AD0~AD15(Address/Data Bus):分时复用的地址数据线。
双向。
在了解分时复用的概念之前必须先了解总线周期概念:总线周期:CPU对存储单元或I/O端口每读/写一次数据(一个字节或一个字)所需的时间称为一个总线周期。
通常情况下,一个总线周期分为4个时钟周期,即T1、T2、T3、T4。
下面讲解AD15~AD0的具体分时复用的问题:(8088只有AD7~AD0)在T1期间作地址线A15~A0用,此时是输出的(是存储单元的低十六位地址或I/O端口的十六位地址);在T2~T4期间作数据线D15~D0用,此时是双向的。
A19/S6~A16/S3:分时复用,输出引脚。
在T1期间,作地址线A19~A16用,对存储单元进行读写时,高四位地址线由A19~A16给出;在T2~T4期间作为S6~S3状态线用。
状态线的特征如下:S5:用来表示中断允许状态位IF的当前设置。