第二章8086系统结构案例
合集下载
第2章 Intel 8086与8088微机系统结构PPT课件
地 AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK
地
1
40
2
39
3
38
4
37
5
36
6
35
7
34
8
33
9 8086 32
10
31
11
30
12
29
13
28
14
27
15
26
16
25
17
24
18
23
19
• 最小模式和最大模式的概念
– 最小模式:系统中只有一个8086/8088微处理器,所有的总线控制信号由它产 生
– 最大模式:系统中有多个微处理器,其中一个主处理器为8086/8088,其它的 称为协处理器。
• 8087数值运算协处理器:高精度的整数和浮点运算,超越函数的计算 • 8089输入/输出协处理器:两个DMA通道的管理
低接收高发送5mio存储器输入输出控制信号输出6wr写信号输出7hold总线请求信号输入8hlda总线响应信号输出8088cpu的第34引脚称ss0它和miodtr组合决定当前总线周期的操作8088的ss0miodtr组合miodtrss0操作000取指令001读内存010写内存011无源状态100发中断响应信号101读io端口110写io端口111暂停8086最小模式的典型配置8284连接见后8284aresetreadyclkreadyalebhestbbhereseta19a16ad15ad08282锁存器三片地址总线8286收发器二片数据总线denoedtrtmiowrrdhlodhldaintr控制总线mnmx5vinta8086的引脚信号在最大模式时的含义1qs1qs0指令队列状态信号输出00无操作01从指令队列中的第一个字节取走代码10队列为空11除第一个字节外还取走了后续字节中的代码2s2s1s0总线周期状态输出信号000发中断响应信号001读io端口010写io端口011暂停100取指令101读内存110写内存111无源状态3lock总线封锁信号输出系统中其它设备不能占用总线4rq1gt1rq0gt0总线请求输入总线请求允许输出8086最大模式的典型配置8284aresetreadyclkreadybhea19a168282锁存器bhereset地址总线a19a16ad15ad0三片8286收发器stb代替协调总线二片数据总线oetmiowrrddtrale共享控制s0s1s28288总线控制器inta控制总线中断rqgt0intr8259a中断控制器请求mnmxgndrqgt18086操作和时序?系统复位和启动操作当reset信号变高维持标志寄存器
第2章-8086微处理器及其体系结构
执行部件EU功能: 从BIU的指令队列中取 出码规指令向储写执1(用状数部A执6指器定令所B器操行寄态据件位LI行U令译的所需或作U部存标暂的的发)部代码全得的I。,/件器志存控算O出件8部数码后结E,寄寄制接术个命中一U功据,执果存存电口逻1经令包个能,行或6器器路进辑位都指,含1。指执,和。对行单6的由令执一一令行位执存读元通译行E个个所 指的行U/
2.2.2 8086微处理器内部结构组成
总线接口部件BIU 内部设有四个16位段地 址寄存器:代码段寄存 器CS、数据段寄存器 DS、堆栈段寄存器SS 和附加段寄存器ES,一 总根负或个I缓器P线 据 责 I/O,和1冲接执完6一设器总位口行成个备,线指部部C62之控P令字0件件间U位制指节BE与的地电UI针指U存数的址路功寄令储据请加。能存队器传求法:器列, 送。
物理地址:就是存储器的实际地址,它是指CPU和存储器进行数据 交换时所使用的地址(20位)。
逻辑地址:是在程序中使用的地址,它由段地址和偏移地址两部分 组成(16位)。逻辑地址的表示形式为“段地址∶偏移地址”。
段基地址:把段的起始单元的物理地址除以16的结果为段地址,段 的起始单元的物理地址为16的整数倍,即:XXXX0H
DF—方向标志位,若该位置1,则串操作指令的地址修 改为自动减量方向,反之,为自动增量方向。
3.段寄存器
8086CPU共有4个16位的段寄存器,用来存放每一 个逻辑段的段起始地址。
(1)代码段寄存器CS (3)堆栈段寄存器SS
(2)数据段寄存器DS (4)附加段寄存器ES
这些段寄存器的内容与有效的地址偏移量一起,可确 定内存的物理地址。
只晶体管;
使用单一的+5V电源,40条引脚双列直插式封装; 时钟频率为5MHz~10MHz,基本指令执行时间为.3ms~0.6ms 16根数据线和20根地址线,可寻址的地址空间达1MB 8086可以和浮点运算器、I/O处理器或其他处理器组成多处
第2章 8086微处理器及其系统PPT课件
1.条件标志 -----共6位,用于寄存程序运行的状态信息,这些标 志往往用作后续指令判断的依据。 2.控制标志 -----共3位,用于控制机器或程序的某些运行过程。
5
15 ~12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF ― AF ― PF ― CF
例:对于物理地址01023H单元
可以表为0100H:0023H PA=0100H×10H+0023H =01023H
也可表为0102H:0003H PA=0102H×10H+0003H =01023H
CS DS SS
段 寄
ES 存
IP 器
指令指针寄存器
总线 控制
逻辑 外部总线
123456
指令队列 3
内部寄存器
● 8086共有8个16位的内部寄存器,分为两组:
AX
AH AL
BX
BH
BL
CX DX
CH DH
CL DL
●通用寄存器
SP BP●指针和变址寄来自器SIDI●四S个P(通St用ac数k P据o寄int存er器RAegXis、teBr)X堆、栈C指X针、寄DX存均器可用 ●作B1P6位( B寄as存ic器Po也in可ter用R作eg8is为ter寄)基存址器指。针用寄作存8 位器寄 ●存S器I(分So别ur记ce作In:deAxHR、egAisLte、r)源BH变、址B寄L、存C器H、CL、
第 2 章 80X86微处理器
2.1 8086微处理器 2.2 8086系统的存储器组织及I/O组织 2.3 8086系统配置 2.4 8086的操作时序
1
2.1 8086微处理器
1978年,Intel公司推出16位微处理器8086。
5
15 ~12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF ― AF ― PF ― CF
例:对于物理地址01023H单元
可以表为0100H:0023H PA=0100H×10H+0023H =01023H
也可表为0102H:0003H PA=0102H×10H+0003H =01023H
CS DS SS
段 寄
ES 存
IP 器
指令指针寄存器
总线 控制
逻辑 外部总线
123456
指令队列 3
内部寄存器
● 8086共有8个16位的内部寄存器,分为两组:
AX
AH AL
BX
BH
BL
CX DX
CH DH
CL DL
●通用寄存器
SP BP●指针和变址寄来自器SIDI●四S个P(通St用ac数k P据o寄int存er器RAegXis、teBr)X堆、栈C指X针、寄DX存均器可用 ●作B1P6位( B寄as存ic器Po也in可ter用R作eg8is为ter寄)基存址器指。针用寄作存8 位器寄 ●存S器I(分So别ur记ce作In:deAxHR、egAisLte、r)源BH变、址B寄L、存C器H、CL、
第 2 章 80X86微处理器
2.1 8086微处理器 2.2 8086系统的存储器组织及I/O组织 2.3 8086系统配置 2.4 8086的操作时序
1
2.1 8086微处理器
1978年,Intel公司推出16位微处理器8086。
第二章 8086系统结构
(2) BIU提供了16位双向数据总线和20位地址总线 (3) BIU的组成 16位段地址寄存器
16位指令指针寄存器 20位物理地址加法器 6字节指令队列 总线控制逻辑 (4) BIU的基本工作原理 (*)
安徽建筑大学电子与信息学院
• 16位段地址寄存器: CS------代码段寄存器 DS------数据段寄存器 ES------附加段寄存器 SS------堆栈段寄存器
34000H + 00C5H ---------------
340C5H 4.指令指针寄存器IP
IP由BIU自动将其修改
安徽建筑大学电子与信息学院
5.标志寄存器PSW
15
11 10 9 8 7 6
4
2
0
OF DF IF TF SF ZF
AF
PF
CF
(1)CF ----进位标志位,运算中最高位有进位为1,无进位为0 (2)PF ----奇偶校验位,运算结果低8位有偶数个1为1,奇数个为0 (3)AF ----辅助进位标志位,低4位向高4位有进位为1,无进位为0 (4)ZF ----全零标志位,运算结果为0, ZF=1;否则 ZF=0 (5)SF ----符号标志位,运算结果为负数时为1,否则为0 (6)OF ----溢出标志位,运算结果溢出为1,否则为0
在字符串运算指令中作源变址寄存器
SI
在间接目的变址寄存器
DI
在间接寻址中作变址寄存器
BP 在间接寻址中作基址指针 SP 在堆栈操作中作堆栈指针
安徽建筑大学电子与信息学院
1. 数据通用寄存器
15 8 7
0
15
AX AH
AL 累加器
CS
BX BH
BL 基址寄存器
16位指令指针寄存器 20位物理地址加法器 6字节指令队列 总线控制逻辑 (4) BIU的基本工作原理 (*)
安徽建筑大学电子与信息学院
• 16位段地址寄存器: CS------代码段寄存器 DS------数据段寄存器 ES------附加段寄存器 SS------堆栈段寄存器
34000H + 00C5H ---------------
340C5H 4.指令指针寄存器IP
IP由BIU自动将其修改
安徽建筑大学电子与信息学院
5.标志寄存器PSW
15
11 10 9 8 7 6
4
2
0
OF DF IF TF SF ZF
AF
PF
CF
(1)CF ----进位标志位,运算中最高位有进位为1,无进位为0 (2)PF ----奇偶校验位,运算结果低8位有偶数个1为1,奇数个为0 (3)AF ----辅助进位标志位,低4位向高4位有进位为1,无进位为0 (4)ZF ----全零标志位,运算结果为0, ZF=1;否则 ZF=0 (5)SF ----符号标志位,运算结果为负数时为1,否则为0 (6)OF ----溢出标志位,运算结果溢出为1,否则为0
在字符串运算指令中作源变址寄存器
SI
在间接目的变址寄存器
DI
在间接寻址中作变址寄存器
BP 在间接寻址中作基址指针 SP 在堆栈操作中作堆栈指针
安徽建筑大学电子与信息学院
1. 数据通用寄存器
15 8 7
0
15
AX AH
AL 累加器
CS
BX BH
BL 基址寄存器
第2章INTEL80868088微处理器详解PPT课件
A16/S3
AD12
A17/S4
AD11
A18/S5
AD10
A19/S6
AD9
BHE/S7
AD8
MN/MX
8086 AD7
RD
AD6
HOLD(RQ/GT0)
AD5
HLDA(RQ/GT1)
AD4
WR(LOCK)
AD3
M/IO(S2)
AD2
DT/R(S1)
AD1
DEN (S0)
AD0
ALE (QS0)
NMI
WR(LOCK)
AD3
M/IO(S2)
AD2
DT/R(S1)Leabharlann AD1DEN (S0)
AD0
ALE (QS0)
NMI
INTA(QS1)
INTR
TEST
CLK
READY
GND8088引脚图 RESET
18
8086引脚可分为5类:
1、地址线(20位):AD0~AD15,A16~A19。其 中AD0~AD15为地址/数据复用引脚,故为双向、 三态;A16~A19为地址/状态复用引脚,输出、 三态。此外,AD0还作为低8位数据选通信号使 用。
SF:符号标志,指令执行结果的最高二进制位是0还是1,为0,则 SF=0。代表正数;为1,则SF=1,代表负数。
PF:奇偶校验标志,用来表示指令执行结果的低8位中1的个数是奇 数还是偶数,若为奇数个“1”则PF=0,若为偶数个“1”则PF=1。
ZF:零标志,用来表示指令执行结果是否为0,若为0则ZF=1,否则 ZF=0。
对于8080与8085及较早的8位微处理器: 程序执行由取指令和执行指令的循环来完成,每条指令执行 完后CPU必须等待到下条指令取出来后才能执行。
微机原理第2章 8086系统结构2-3.4
12
CLK
RESET 输入
内部 RESET
三态门 输出信号
图2-16 复位操作时序
13
T1
CLK A19/S6-A16/S3 地址,BHE 地址输出
一个总线周期 T2 T3
T4
BHE / S7
AD15-AD0
状态输出
数据输入
ALE
M / IO
低为读IO,高为读存储器
RD
DT / R
DEN
图2-17 读总线周期操作时序
FFFFF
图2-9 存储器分段示意图
2
表2-8 逻辑地址来源
操作类型
取指令 堆栈操作 BP为间址 存取变量 源字符串
隐含段地址
CS SS SS DS DS
替换段地址
无 无 CS,DS,ES CS,ES,SS CS,ES,SS
偏移地址
IP SP 有效地址EA 有效地址EA SI
目标字符串
ES
无
DI
3
A19~A0
地址总线
图2-14 8088系统存储器与总线的连接
9
C0000
C0000 CX 66 55
向 上 增 长
SP → C0FFE
←SP C1000
00 11
PUSH BX 11 00
22
33
PUSH AX 33 22
C1000 栈底
图2-15 堆栈操作过程
10
C0000
C0000 POP CX 11 00 BX 11 AX 33 22 00
向 上 增 长
00 11 SP → ←SP C1000
22
33
C1000 栈底
图2-15 堆栈操作过程
第2章 80888086系统硬件结构
OF DF IF TF SF ZF
AF
PF
CF
条件码标志:
OF SF ZF CF AF PF
控制标志:
方向标志
系统标志位:
IF 中断标志 TF 陷阱标志
溢出标志 DF 符号标志 零标志 进位标志 辅助进位标志 奇偶标志
第2章 8088/8086系统硬件结构
程 序 状 态 字 ( ) PSW
第2章 8088/8086系统硬件结构
第2章 8088/8086系统硬件结构
1、存储器地址的分段
•每个段的最大长度可达
64KB,段内地址是连续的、 线性增长的,允许单个逻辑 段在整个1MB存储空间内浮 动。
•可以有相连的段(如:C和D
段)、不相连的段(如:A和B 段)以及相互重叠的段(如:B 和C段)
第2章 8088/8086系统硬件结构
第2章 8088/8086系统硬件结构
2、段寄存器(CS、 DS、 SS、 ES、 FS、GS)
存放段地址,确定一个段的的起始地址. 用途各不相同:
代码段(CS):存放当前正在运行的程序 数据段(DS):存放当前运行程序所用的数据 ,或串处理指令
中的源操作数
堆栈段(SS):定义堆栈(后进先出)的所在区域 附加段(ES):附加的数据区,或串处理指令中的目的操作数
-)
79000H
2450H
即SP值为2450H.
第2章 8088/8086系统硬件结构
2.1.2 8088CPU的两大功能结构
8088CPU的两大功能结构为总线接口单元 BIU(BusInterfaceUnit)和指令执行单元 EU(ExecutionUnit),如图2.4所示。 U单元负责指令的执行,由算术逻辑单元ALU、标 志寄存器F、通用寄存器及EU控制器等组成,主要进 行16位的各种运算及有效地址的计算。EU不与计算机 系统总线(外部总线)相关,而从BIU中的指令队列取得
第二章8086微处理器结构.ppt
• DX:通用寄存器;一些指令中作为数据(Data) 寄存器与AX配合使用。
• 说明:
i. 在一般指令中,这些寄存器可作为通用寄存 器使用,在一些特定的指令中,各寄存器有 特定功能;
ii.既可作为16位使用,也可分成两个8位寄存 器使用
高8位记作 : AH、BH、CH、DH
低8位记作 : AL、BL、CL、DL
调试; I—中断允许标志,置1允许CPU接受外部可屏蔽中断;
前6种标志为状态标志,后3种标志为控制标志。
CPU怎样判断是否溢出?
• 按结果的最高位和次高位的进位情况判断; 对两个进位进行异或,异或结果为1表示有溢 出,为0表示无溢出。
• 原理不做讨论。
80386 1986 32 27.5
80486
1989 32 120160
Pentium 1993 32 310-
(586)
330
Pentium 1995 32 550 Pro(P6)
Pentium 1997 32 750 II
4.77 16
8
20
1M No
6-20 16
16
24
16M No
12.5-33 32
15
+
19
0
16位段地址
0000
15
0
16位偏移地址
0 20位物理地址
3)物理地址、逻辑地址 • 物理地址:存储器中各存储单元的实际地址。 • 逻辑地址:用段地址和偏移地址表示的相对
地址。 表示形式为 段地址:偏移地址 如 2000H:1340H
• 一个物理地址可对应多个逻辑地址;
如物理地址12345H,逻辑地址可以是
32
32
4G Yes
• 说明:
i. 在一般指令中,这些寄存器可作为通用寄存 器使用,在一些特定的指令中,各寄存器有 特定功能;
ii.既可作为16位使用,也可分成两个8位寄存 器使用
高8位记作 : AH、BH、CH、DH
低8位记作 : AL、BL、CL、DL
调试; I—中断允许标志,置1允许CPU接受外部可屏蔽中断;
前6种标志为状态标志,后3种标志为控制标志。
CPU怎样判断是否溢出?
• 按结果的最高位和次高位的进位情况判断; 对两个进位进行异或,异或结果为1表示有溢 出,为0表示无溢出。
• 原理不做讨论。
80386 1986 32 27.5
80486
1989 32 120160
Pentium 1993 32 310-
(586)
330
Pentium 1995 32 550 Pro(P6)
Pentium 1997 32 750 II
4.77 16
8
20
1M No
6-20 16
16
24
16M No
12.5-33 32
15
+
19
0
16位段地址
0000
15
0
16位偏移地址
0 20位物理地址
3)物理地址、逻辑地址 • 物理地址:存储器中各存储单元的实际地址。 • 逻辑地址:用段地址和偏移地址表示的相对
地址。 表示形式为 段地址:偏移地址 如 2000H:1340H
• 一个物理地址可对应多个逻辑地址;
如物理地址12345H,逻辑地址可以是
32
32
4G Yes
第2章 8086 微处理器及其系统结构
8086的寄存器组
对汇编语言程序员来说,8086内部结构就是
可编程的寄存器组
执行单元EU 8个通用寄存器 1个指令指针寄存器 1个标志寄存器 4个段寄存器
标志寄存器
标志(Flag)用于反映指令执行结果或控制
指令执行形式 8086处理器的各种标志形成了一个16位的标 志寄存器FR(标志寄存器的内容称为程序状 态字PSW)
用于串操作指令中,控制地址的变化方向:
设置DF=0,存储器地址自动增加; 设置DF=1,存储器地址自动减少。
CLD指令复位方向标志:DF=0
STD指令置位方向标志:DF=1
中断允许标志IF(Interrupt-enable Flag)
用于控制外部可屏蔽中断是否可以被处理器
响应:
设置IF=1,则允许中断; 设置IF=0,则禁止中断。
写一个字节(字)的时间。 时钟周期(Clock Cycle):基本定时脉冲的两个沿之 间的时间间隔,是CPU的最小时间单位。 T状态(Tstate):一个基本时钟周期又称T状态。 基本总线周期:4个T状态
8086CPU的两种模式
最小模式
MN/MX接+5V
构成小规模的应用系统,只有8086一个微处理器, 所有的总线控制信号均为8086产生,系统中的总线控
制逻辑电路,减少到最少。
最大模式
MN/MX接地。 用于大型(中型)8086/8088系统中,系统总是包含有
两个或多个微处理器,其中一个主处理器就是8086或 8088,其它的处理器称协处理器,协助主处理器工作。 需要总线控制器来变换和组合控制信号。
若运算结果为0,则ZF = 1; 否则ZF = 0 注意:ZF为1表示的结果是0 3AH + 7CH=0B6H,结果不是零:ZF = 0
2第二章 8086体系结构PPT课件
0
ES
中
国
人 民
0
1
SS
公
安
大
学 网 保
1
0
CS或未使用任何段寄存器
学
院
1
1
DS
35
BHE
(3)BHE# /S7 (Bus High Enable/Status):
数据总线高8位使能和状态复用信号,输出。在
总线周期T1状态,BHE#有效,表示数据线上高8
中 国 人
位数据有效。在T2~T4状态BHE # /S7 输出状态
隐含 隐含
在间接寻址中作基址寄存器用 BX 在XLAT指令中作基址寄存器用
不能隐含 隐含
中 国 人
CX 在串操作指令和LOOP指令中作计数器用 CL 在移位/循环移位指令中作移位次数计数器用
隐含 不能隐含
民
在字乘法/除法指令中存放乘积高位或被除数高位或余数
隐含
公
DX 在间接寻址的输入输出指令中作地址寄存器用
26
FR寄存器的控制标志
中
➢ IF(Interrupt Flag):中断标志位
国
人 民
IF=1,表示允许CPU响应可屏蔽中断。IF标志可
公
安 大
通过STI指令置位,也可通过CLI指令复位。
学
网 保
➢DF(Direction Flag):方向标志位
学
院
在串操作指令中,若DF=0,表示串操作指令地
址指针自动增量;DF=1,表示地址指针自动减量
➢ CS(Code Segment),代码段寄存器中存放程
中 国
序代码段起始地址的高16位。
人
民
公 安
➢ DS(Data Segment),数据段寄存器中存放数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章 8086系统结构
2.1 8086CPU结构 2.2 8086CPU的引脚及其功能 2.3 8086存储器组织 2.4 8086系统配置
2.1 8086CPU结构
Inter 8086CPU是16位微处理器,它有16根数据线和20根地 址线,直接寻址空间为 220 ,即1MB。8088CPU内部结构与8086 基本相同但对外数据总线只有8条,称为准16位微处理器。 2.1.1 8086CPU的内部结构
SP寄存器在堆栈操作中使用,PUSH和POP指令是从SP 寄存器得到现行堆栈段的段内地址偏移量,所以称SP寄 存器为堆栈指针,SP始终指向栈顶。 寄存器SI和DI称为变址寄存器,通常与DS一起使 用,为访问现行数据段提供段内地址偏移量。 在串指令中,其中源操作数的偏移量存放在SI中, 目的操作数的偏移量存放在DI中,SI与DI的作用不能互 换,否则传送地址相反。 在串指令中,SI、DI均为隐含寻址,此时,SI和DS 联用,DI和ES联用。
∑ AH BH CH DH SI DI SP BP 16 位内部总线 8位 AL BL CL DL AX BX CX DX IP CS DS SS ES 内部暂存器
20 位地址总线 16 位总线
通 用 寄 存 器 组
运算暂存器
总线 控制 逻辑 电路
8086 总线
指令队列缓冲器 ALU EU 控制电路 1 2 3 4 5 6
TF(Trap Flag)——单步标志位。它是为调试程序而设定的 控制位。当该位置“1”时,8086 CPU处于单步状态,此时CPU 每执行完一条指令就自动产生一次内部中断,使用户能逐条跟 踪程序进行调试ห้องสมุดไป่ตู้当该位复位后,CPU恢复正常工作。
例2.2 将5394H与-777FH两数相加,并说 明其标志位状态: 0101 0011 1001 0100 + 1000 1000 1000 0001 ————————————— 1101 1100 0001 0101 运算结果为-23EBH,并置标志位为 CF=0,PF=0,AF=0,ZF=0,SF=1,OF=0。
本节主要内容讲解视 频
2.2 8086CPUD 引脚及其功能
8086/8088CPU根据它的基本性能,应包括20条地址 线,16条数据线,加上控制信号,电源和地线,芯片的引 脚比较多。但由于制造工艺的限制,8086/8088CPU芯片 采用40条引脚的双列直插式封装,因此部分引脚采用了 分时复用的方式。 另外8086/8088CPU可以工作在两种工作模式(最小模 式和最大模式),最小模式用于单机系统。系统中所需要 的控制信号全部由8086直接提供。最大模式用于多处理 机系统,系统中所需要的控制信号由总线控制器8288提 供。
2.1.2寄存器结构
寄存器用来存放运算过程中所需要的操作数地址、 操作数及中间结果。 8086微处理器内部包含有4组16位寄存器,它们分别 是通用寄存器组,指针和变址寄存器,段寄存器,指令 指针及标志位寄存器。如图2.2所示。
2. 8086 CPU的内部寄存器
数据寄存器 AX AH AL SP 指针与变址寄存器 堆栈指针寄存器
3.段寄存器
8086/8088CPU可直接寻址1MB的存储器空间,直接 寻址需要20位地址码,而所有内部寄存器都是16位的, 只能直接寻址64KB,因此采用分段技术来解决。将1MB的 存储空间分成若干逻辑段,每段最长64KB,这些逻辑段 在整个存储空间中可浮动。 8086/8088CPU内部设置了4个16位段寄存器,它们分 别是代码段寄存器CS、数据段寄存器DS、堆栈段寄存器 SS、附加段寄存器ES,由它们给出相应逻辑段的首地 址,称为“段基址”。 段基址与段内偏移地址组合形成20位物理地址,段 内偏移地址可存放在寄存器中,也可存放在存储器中 。
(2)16位指令指针寄存器IP:存放下一条要执行指令的 偏移地址。 (3)20位物理地址加法器:将16位逻辑地址变换成存储 器读/写所需要的20位物理地址,实际上完成地址加法 操作。 (4)6字节指令队列:预放6字节的指令代码。 (5)总线控制逻辑:发出总线控制信号。
2.指令执行部件EU 指令执行部件EU完成指令译码和执行指令的工作。 它由以下几个部分组成: (1)算术逻辑运算单元ALU:完成8位或16位的二进制运 算,16位暂存器可暂存参加运算的操作数。 (2)标志寄存器PSW:存放ALU运算结果特征。 (3)寄存器组:4个通用16位寄存器AX、BX、CX、DX,其 中AX又称累加器。4个专用16位寄存器:源变址寄存器 SI、目的变址寄存器DI、堆栈指针寄存器SP、基址指 针寄存器BP。 (4)EU控制器:取指令控制和时序控制部件。
(2) 3个控制标志位用来控制CPU的操作,由指令进行置位
和复位。 DF(Direction Flag)——方向标志位。它用以指定字符串处 理时的方向,当该位置“1”时,字符串以递减顺序处理,即地 址以从高到低顺序递减。反之,则以递增顺序处理。 IF(Interrupt enable Flag)——中断标志位。它用来控制8086 是否允许接收外部中断请求。若IF=1,允许CPU响应外部中断, 反之则不响应外部中断。 注意:IF的状态不影响非屏蔽中断请求(NMI)和CPU内部中断请 求。
在8086中,某些通用寄存器用作专门用途。例如, 串指令中必须用CX寄存器作为计数寄存器,存放串的长 度,同样,AX、BX、DX寄存器又可分别称为累加器、基 址寄存器及数据寄存器。
2.指针和变址寄存器
8086/8088CPU中,有一组4个16位寄存器,它们是基 址指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI 和目的变址寄存器DI。 这组寄存器存放的内容是某一段内地址偏移量,用 来形成操作数地址,主要在堆栈操作和变址运算中使用。 BP和SP寄存器称为指针寄存器,与SS联用,为访问现行 堆栈段提供方便。通常BP寄存器在间接寻址中使用,操 作数在堆栈段中,由SS段寄存器与BP组合形成操作数地 址。即BP中存放现行堆栈段中一个数据区的“基址” 的偏移量,所以称BP寄存器为基址指针。
含有偶数个1时,PF=1;否则PF=0。
AF(Auxiliary carry Flag)——辅助进位标志位。当执行一个
加法(或减法)运算,结果的低4位向高4位有进位(或借位)时,
AF=1;否则AF=0。一般用在BCD码运算中,判断是否需要十进 制调整。
ZF(Zero Flag)——全零标志位。若当前的运算结果为零, ZF=1;否则ZF=0。 SF(Sign Flag)——符号标志位。它和运算结果的最高位相同。 OF(Overflow Flag)——溢出标志位。当运算过程中产生溢 出时,OF=1;否则OF=0。
例2.1 代码段寄存器CS存放当前 代码段基地址,IP指令指针寄存器 存放了下一条要执行指令的段内偏 移地址,其中CS=2000H,IP=003AH. 通过组合,形成20位存储单元的寻 址地址为2003AH 。
代码段内存放可执行的指令代码,数据段和附加段 内存放操作的数据,通常操作数在现行数据段中,而在 串指令中,目的操作数指明必须在现行附加段中。堆栈 段开辟为程序执行中所要用的堆栈区,采用先进后出的 方式访问它。 各个段寄存器指明了一个规定的现行段,各段寄存 器不可互换使用。程序较小时,代码段、数据段、堆栈 段可放在一个段内,即包含在64KB之内,而当程序或数 据量较大时,超过了64KB,可以定义多个代码段或数据 段、堆栈段、附加段。 现行段由段寄存器指明段地址,使用中可以修改段 寄存器内容,指向其它段。有时为了明确起见,可在指 令前加上段超越的前缀字,以指定操作数所在段。
溢 出 标 志
中 断 允 许
1-结果为0 0-结果不为0
半 进 借 位 标 志
奇 偶 标 志
进 借 位 标 志
1-有进、借位
0-无进、借位
1-低4位向高4位有进、借位 0-低4位向高4位无进、借位
(1) 6个状态标志位的功能分别叙述如下: CF(Carry Flag)——进位标志位。当执行一个加法(或减法)运 算,最高位产生进位(或借位)时,CF为1;否则为0。 PF(Parity Flag)——奇偶标志位。该标志位反映运算结果低 8位中“1”的个数是偶数还是奇数。当指令执行结果的低8位中
标志寄存器 执行单元 (EU)
总线接口单元 (BIU)
图2.1 8086 CPU内部结构示意图
1.总线接口部件BIU 总线接口部件BIU是8086CPU与外部(存储器和I/O 端口)的接口,它提供了16位双向数据总线和20位地址 总线,完成所有外部总线操作。 BIU具有下列功能:地址形成、取指令、指令排队, 读/写操作数和总线控制。它由下列各部分组成: (1)16位段地址寄存器: CS-代码段寄存器 DS-数据段寄存器 ES-附加段寄存器 SS-堆栈段寄存器
微型计算机工作时,总是先从存储器中取指令,需要的话再取操作数, 然后执行指令,送结果。通常8位机是串行执行的,而16位机可并行操作。 8086 CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU的操作 是并行的。总线接口部件BIU完成取指令,读操作数,送结果,所有与外部 的操作由其完成。而指令执行部件EU从BIU的指令队列中取出指令,执行指 令,不必访问存储器或I/O端口。若需要访问存储器或I/O端口,也是由EU 向BIU发出访问所需要的地址,在BIU中形成物理地址,然后访问存储器或 I/O端口,取得操作数送到EU,或送结果到指定的内存单元或I/O端口。这种 并行工作方式,大大提高了系统工作效率。
这样,24脚~31脚的8条引脚在两种工作模式中具有
不同的功能。
2.2.1 8086/8088CPU在最小模式中引脚定义
8086CPU采用双列直插式的封装形式,具有40条引 脚,见图2.4。它采用分时复用的地址/数据总线,所以有 一部分引脚具有双重功能,即在不同时钟周期内,引脚
5.标志寄存器PSW
标志寄存器是一个16位的寄存器,8086共使用了9个有效 位,格式如图2.3所示。其中的6位是状态标志位: CF、PF 、 AF、ZF、CF和OF。 3位为控制标志位: TF、IF和DF。状态标 志位是当一些指令执行后,表征所产生数据的一些特征。而控 制标志位则可以由程序写入,以达到控制处理机状态或程序执 行方式的表征。
2.1 8086CPU结构 2.2 8086CPU的引脚及其功能 2.3 8086存储器组织 2.4 8086系统配置
2.1 8086CPU结构
Inter 8086CPU是16位微处理器,它有16根数据线和20根地 址线,直接寻址空间为 220 ,即1MB。8088CPU内部结构与8086 基本相同但对外数据总线只有8条,称为准16位微处理器。 2.1.1 8086CPU的内部结构
SP寄存器在堆栈操作中使用,PUSH和POP指令是从SP 寄存器得到现行堆栈段的段内地址偏移量,所以称SP寄 存器为堆栈指针,SP始终指向栈顶。 寄存器SI和DI称为变址寄存器,通常与DS一起使 用,为访问现行数据段提供段内地址偏移量。 在串指令中,其中源操作数的偏移量存放在SI中, 目的操作数的偏移量存放在DI中,SI与DI的作用不能互 换,否则传送地址相反。 在串指令中,SI、DI均为隐含寻址,此时,SI和DS 联用,DI和ES联用。
∑ AH BH CH DH SI DI SP BP 16 位内部总线 8位 AL BL CL DL AX BX CX DX IP CS DS SS ES 内部暂存器
20 位地址总线 16 位总线
通 用 寄 存 器 组
运算暂存器
总线 控制 逻辑 电路
8086 总线
指令队列缓冲器 ALU EU 控制电路 1 2 3 4 5 6
TF(Trap Flag)——单步标志位。它是为调试程序而设定的 控制位。当该位置“1”时,8086 CPU处于单步状态,此时CPU 每执行完一条指令就自动产生一次内部中断,使用户能逐条跟 踪程序进行调试ห้องสมุดไป่ตู้当该位复位后,CPU恢复正常工作。
例2.2 将5394H与-777FH两数相加,并说 明其标志位状态: 0101 0011 1001 0100 + 1000 1000 1000 0001 ————————————— 1101 1100 0001 0101 运算结果为-23EBH,并置标志位为 CF=0,PF=0,AF=0,ZF=0,SF=1,OF=0。
本节主要内容讲解视 频
2.2 8086CPUD 引脚及其功能
8086/8088CPU根据它的基本性能,应包括20条地址 线,16条数据线,加上控制信号,电源和地线,芯片的引 脚比较多。但由于制造工艺的限制,8086/8088CPU芯片 采用40条引脚的双列直插式封装,因此部分引脚采用了 分时复用的方式。 另外8086/8088CPU可以工作在两种工作模式(最小模 式和最大模式),最小模式用于单机系统。系统中所需要 的控制信号全部由8086直接提供。最大模式用于多处理 机系统,系统中所需要的控制信号由总线控制器8288提 供。
2.1.2寄存器结构
寄存器用来存放运算过程中所需要的操作数地址、 操作数及中间结果。 8086微处理器内部包含有4组16位寄存器,它们分别 是通用寄存器组,指针和变址寄存器,段寄存器,指令 指针及标志位寄存器。如图2.2所示。
2. 8086 CPU的内部寄存器
数据寄存器 AX AH AL SP 指针与变址寄存器 堆栈指针寄存器
3.段寄存器
8086/8088CPU可直接寻址1MB的存储器空间,直接 寻址需要20位地址码,而所有内部寄存器都是16位的, 只能直接寻址64KB,因此采用分段技术来解决。将1MB的 存储空间分成若干逻辑段,每段最长64KB,这些逻辑段 在整个存储空间中可浮动。 8086/8088CPU内部设置了4个16位段寄存器,它们分 别是代码段寄存器CS、数据段寄存器DS、堆栈段寄存器 SS、附加段寄存器ES,由它们给出相应逻辑段的首地 址,称为“段基址”。 段基址与段内偏移地址组合形成20位物理地址,段 内偏移地址可存放在寄存器中,也可存放在存储器中 。
(2)16位指令指针寄存器IP:存放下一条要执行指令的 偏移地址。 (3)20位物理地址加法器:将16位逻辑地址变换成存储 器读/写所需要的20位物理地址,实际上完成地址加法 操作。 (4)6字节指令队列:预放6字节的指令代码。 (5)总线控制逻辑:发出总线控制信号。
2.指令执行部件EU 指令执行部件EU完成指令译码和执行指令的工作。 它由以下几个部分组成: (1)算术逻辑运算单元ALU:完成8位或16位的二进制运 算,16位暂存器可暂存参加运算的操作数。 (2)标志寄存器PSW:存放ALU运算结果特征。 (3)寄存器组:4个通用16位寄存器AX、BX、CX、DX,其 中AX又称累加器。4个专用16位寄存器:源变址寄存器 SI、目的变址寄存器DI、堆栈指针寄存器SP、基址指 针寄存器BP。 (4)EU控制器:取指令控制和时序控制部件。
(2) 3个控制标志位用来控制CPU的操作,由指令进行置位
和复位。 DF(Direction Flag)——方向标志位。它用以指定字符串处 理时的方向,当该位置“1”时,字符串以递减顺序处理,即地 址以从高到低顺序递减。反之,则以递增顺序处理。 IF(Interrupt enable Flag)——中断标志位。它用来控制8086 是否允许接收外部中断请求。若IF=1,允许CPU响应外部中断, 反之则不响应外部中断。 注意:IF的状态不影响非屏蔽中断请求(NMI)和CPU内部中断请 求。
在8086中,某些通用寄存器用作专门用途。例如, 串指令中必须用CX寄存器作为计数寄存器,存放串的长 度,同样,AX、BX、DX寄存器又可分别称为累加器、基 址寄存器及数据寄存器。
2.指针和变址寄存器
8086/8088CPU中,有一组4个16位寄存器,它们是基 址指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI 和目的变址寄存器DI。 这组寄存器存放的内容是某一段内地址偏移量,用 来形成操作数地址,主要在堆栈操作和变址运算中使用。 BP和SP寄存器称为指针寄存器,与SS联用,为访问现行 堆栈段提供方便。通常BP寄存器在间接寻址中使用,操 作数在堆栈段中,由SS段寄存器与BP组合形成操作数地 址。即BP中存放现行堆栈段中一个数据区的“基址” 的偏移量,所以称BP寄存器为基址指针。
含有偶数个1时,PF=1;否则PF=0。
AF(Auxiliary carry Flag)——辅助进位标志位。当执行一个
加法(或减法)运算,结果的低4位向高4位有进位(或借位)时,
AF=1;否则AF=0。一般用在BCD码运算中,判断是否需要十进 制调整。
ZF(Zero Flag)——全零标志位。若当前的运算结果为零, ZF=1;否则ZF=0。 SF(Sign Flag)——符号标志位。它和运算结果的最高位相同。 OF(Overflow Flag)——溢出标志位。当运算过程中产生溢 出时,OF=1;否则OF=0。
例2.1 代码段寄存器CS存放当前 代码段基地址,IP指令指针寄存器 存放了下一条要执行指令的段内偏 移地址,其中CS=2000H,IP=003AH. 通过组合,形成20位存储单元的寻 址地址为2003AH 。
代码段内存放可执行的指令代码,数据段和附加段 内存放操作的数据,通常操作数在现行数据段中,而在 串指令中,目的操作数指明必须在现行附加段中。堆栈 段开辟为程序执行中所要用的堆栈区,采用先进后出的 方式访问它。 各个段寄存器指明了一个规定的现行段,各段寄存 器不可互换使用。程序较小时,代码段、数据段、堆栈 段可放在一个段内,即包含在64KB之内,而当程序或数 据量较大时,超过了64KB,可以定义多个代码段或数据 段、堆栈段、附加段。 现行段由段寄存器指明段地址,使用中可以修改段 寄存器内容,指向其它段。有时为了明确起见,可在指 令前加上段超越的前缀字,以指定操作数所在段。
溢 出 标 志
中 断 允 许
1-结果为0 0-结果不为0
半 进 借 位 标 志
奇 偶 标 志
进 借 位 标 志
1-有进、借位
0-无进、借位
1-低4位向高4位有进、借位 0-低4位向高4位无进、借位
(1) 6个状态标志位的功能分别叙述如下: CF(Carry Flag)——进位标志位。当执行一个加法(或减法)运 算,最高位产生进位(或借位)时,CF为1;否则为0。 PF(Parity Flag)——奇偶标志位。该标志位反映运算结果低 8位中“1”的个数是偶数还是奇数。当指令执行结果的低8位中
标志寄存器 执行单元 (EU)
总线接口单元 (BIU)
图2.1 8086 CPU内部结构示意图
1.总线接口部件BIU 总线接口部件BIU是8086CPU与外部(存储器和I/O 端口)的接口,它提供了16位双向数据总线和20位地址 总线,完成所有外部总线操作。 BIU具有下列功能:地址形成、取指令、指令排队, 读/写操作数和总线控制。它由下列各部分组成: (1)16位段地址寄存器: CS-代码段寄存器 DS-数据段寄存器 ES-附加段寄存器 SS-堆栈段寄存器
微型计算机工作时,总是先从存储器中取指令,需要的话再取操作数, 然后执行指令,送结果。通常8位机是串行执行的,而16位机可并行操作。 8086 CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU的操作 是并行的。总线接口部件BIU完成取指令,读操作数,送结果,所有与外部 的操作由其完成。而指令执行部件EU从BIU的指令队列中取出指令,执行指 令,不必访问存储器或I/O端口。若需要访问存储器或I/O端口,也是由EU 向BIU发出访问所需要的地址,在BIU中形成物理地址,然后访问存储器或 I/O端口,取得操作数送到EU,或送结果到指定的内存单元或I/O端口。这种 并行工作方式,大大提高了系统工作效率。
这样,24脚~31脚的8条引脚在两种工作模式中具有
不同的功能。
2.2.1 8086/8088CPU在最小模式中引脚定义
8086CPU采用双列直插式的封装形式,具有40条引 脚,见图2.4。它采用分时复用的地址/数据总线,所以有 一部分引脚具有双重功能,即在不同时钟周期内,引脚
5.标志寄存器PSW
标志寄存器是一个16位的寄存器,8086共使用了9个有效 位,格式如图2.3所示。其中的6位是状态标志位: CF、PF 、 AF、ZF、CF和OF。 3位为控制标志位: TF、IF和DF。状态标 志位是当一些指令执行后,表征所产生数据的一些特征。而控 制标志位则可以由程序写入,以达到控制处理机状态或程序执 行方式的表征。