8086系统结构[1]
1 80868088微处理器的内部结构
微机原理第2章8086/8088系统结构8086/8088微处理器的内部结构微机原理8086是Intel系列的16bit微处理器,属第三代。
它有16bit数据总线和20bit地址线,可寻址1M空间。
8088有8bit数据总线和20bit地址线,可寻址1M空间。
其内部有16bit数据总线。
AH AL BH BL SI ALU 运算数暂存器标志寄存器EU控制电路16位CSDSSS ES IP 内部暂存器8位1 2 3 4 5 6执行部件(EU )总线控制电路 指令队列缓冲器总线接口部件(BIU )通用寄存器加法器80888086累加器基址寄存器计数寄存器数据寄存器堆栈指针基址指针目的变址源变址AX BX CX DX微机原理CPUEUBIU •16位通用寄存器组(AX、BX、CX 、DX、SP、BP、SI、DI)•算术逻辑单元—ALU•暂存器•EU控制器•标志寄存器—FLAG•段寄存器组(CS,DS,SS,ES),指令指针—IP •地址加法器•指令队列•总线接口控制逻辑微机原理EU 部件不直接与外部总线相连。
它从BIU的指令队列中取指令和数据。
EU 负责指令的执行。
BIU 根据EU 的请求,完成CPU 与存储器或I/O 之间的数据传送。
功能:符号名称高8位符号低8位符号AX累加器AH AL BX基址寄存器BH BL CX计数寄存器CH CL DX数据寄存器DH DL这里的寄存器可以8位或16位参与操作。
符号名称SP堆栈指针寄存器BP基址指针寄存器SI源变址寄存器DI目的变址寄存器这里的寄存器只能以16位参与操作。
符号名称CS代码段寄存器DS数据段寄存器ES附加段寄存器SS堆栈段寄存器IP指令指针寄存器D15D14D13D12D11D10D9D8 x x x x OF DF IF TF D7D6D5D4D3D2D1D0 SF ZF x AF x PF x CF符号名称定义CF进位标志运算中,最高位有进位或借位时CF=1,否则CF=0 PF奇偶标志运算结果低8位“1”个数为偶数时PF=1,否则PF=0 AF辅助进位D3有向D4进(借)位时AF=1,否则AF=0ZF零标志运算结果每位均为“0”时ZF=1, 否则ZF=0SF符号标志运算结果的最高位为1时SF=1,否则SF=0OF溢出标志运算中产生溢出时OF=1, 否则OF=0符号名称功能TF陷阱标志TF=1将使CPU进入单步执行指令IF中断标志IF=1允许CPU响应可屏蔽中断DF方向标志DF=1将从高地址向低地址处理字符串所以:CF=0PF=1AF=1ZF=0SF=1OF=0微机原理下次课见。
8086结构组成
8086结构组成8086是一款16位微处理器,它的结构组成非常复杂。
本文将从以下几个方面来详细介绍8086的结构组成。
一、总体结构8086由三个主要部分组成:执行单元(EU)、总线接口单元(BIU)和寄存器组。
1.执行单元:负责执行指令并进行算术和逻辑运算。
2.总线接口单元:负责与外部设备通信并控制数据传输。
3.寄存器组:包括通用寄存器、段寄存器和指令指针寄存器等。
二、执行单元1.指令队列指令队列是执行单元中的一个重要部分,它可以存储多条指令,以便快速地进行取指令操作。
当EU需要执行一条新的指令时,它会从队列中取出下一条指令并开始执行。
2.算术逻辑单元算术逻辑单元(ALU)是执行单元中的核心部分,它可以进行各种算术和逻辑运算,如加、减、乘、除、与、或等操作。
ALU还可以处理条件跳转和无条件跳转等控制操作。
3.状态标志寄存器状态标志寄存器(FLAGS)用于记录ALU运算的结果,以便EU进行下一步操作。
FLAGS寄存器包括零标志位、进位标志位、溢出标志位等。
三、总线接口单元1.地址加法器地址加法器(AFA)是BIU的核心部分,它可以将内部地址转换为外部地址,并控制数据传输。
2.指令缓存器指令缓存器(IC)用于存储从内存中读取的指令。
当EU需要执行一条新的指令时,BIU会从IC中取出相应的指令并传输给EU。
3.数据缓存器数据缓存器(DC)用于暂时存储从内存中读取或写入的数据。
当EU 需要访问内存时,BIU会将相应的数据传输到DC中,EU再从DC中读取或写入数据。
四、寄存器组1.通用寄存器8086有8个16位通用寄存器,分别命名为AX、BX、CX、DX、SI、DI、BP和SP。
这些寄存器可以用于保存临时数据和计算结果等。
2.段寄存器8086有4个16位段寄存器,分别命名为CS、DS、ES和SS。
这些寄存器用于保存程序和数据在内存中的位置信息。
3.指令指针寄存器指令指针寄存器(IP)用于保存下一条指令在内存中的地址。
80868088 系统结构
︙
FFFFFH
︙
存储器分段示意图
5. 逻辑地址与物理地址
微机原理
逻辑地址:由段基址和段内偏移地址两部分组成, 表示为段基址:段内偏移地址。 物理地址:存储空间中唯一识别存储单元的地址, 用20位二进制数表示。 物理地址=段基址×16+段内偏移地址
微机原理 例1:段基址:偏移地址分别为1200H:0345H和1 10H:1245H 的逻辑地址对应的物理地址是什么? 解:物理地址1=1200H×16+0345H=12345H
微机原理
IBO CLK
S1 DT/R ALE
AEN MRDC AMWC MWTC
GND
1
20
2
19
3
18
4
17
5
16
6 8288 15
7
14
8
13
9
12
10
11
VCC S0 S2 MCE/PDEN DEN CEN INTA IORC AIOWC IOWC
8. 最小模式下的系统总线
微机原理
9. 最大模式下的系统总线
GND
CEN:命令允许
1
20
2
19
3
18
4
17
5
16
6 8288 15
7
14
8
13
9
12
10
11
VCC S0 S2 MCE/PDEN DEN CEN INTA IORC AIOWC IOWC
7. 总线接口器件
8288控制器的主要输出信号
MRDC:读存储器命令 MWTC:写存储器命令 AMWC:提前写存储器命令 IORC:读I/O端口命令 IOWC:写I/O端口命令 AIOWC:提前写I/O端口命令
微机原理课件第二章 8086系统结构
但指令周期不一定都大于总线周期,如MOV AX,BX
操作都在CPU内部的寄存器,只要内部总线即可完成,不 需要通过系统总线访问存储器和I/O接口。
2021/8/17
17
• 8086CPU的典型总线时序,充分体现了总 线是严格地按分时复用的原则进行工作的。 即:在一个总线周期内,首先利用总线传 送地址信息,然后再利用同一总线传送数 据信息。这样减少了CPU芯片的引脚和外 部总线的数目。
• 执行部件(EU)
• 功能:负责译码和执行指令。
2021/8/17
5
• 联系BIU和EU的纽带为流水指令队列
• 队列是一种数据结构,工作方式为先进先出。写入的指令 只能存放在队列尾,读出的指令是队列头存放的指令。
2021/8/17
6
•BIU和EU的动作协调原则 BIU和EU按以下流水线技术原则协调工作,共同完成所 要求的任务: ①每当8086的指令队列中有空字节,BIU就会自动把下 一条指令取到指令队列中。 ②每当EU准备执行一条指令时,它会从BIU部件的指令 队列前部取出指令的代码,然后译码、执行指令。在执 行指令的过程中,如果必须访问存储器或者I/O端口, 那么EU就会请求BIU,完成访问内存或者I/O端口的操 作; ③当指令队列已满,且EU又没有总线访问请求时,BIU 便进入空闲状态。(BIU等待,总线空操作) ④开机或重启时,指令队列被清空;或在执行转移指令、 调用指令和返回指令时,由于待执行指令的顺序发生了 变化,则指令队列中已经装入的字节被自动消除,BIU会 接着往指令队列装入转向的另一程序段中的指令代码。 (EU等待)
•CF(Carry Flag)—进位标志位,做加法时最高位出现进位或 做减法时最高位出现借位,该位置1,反之为0。
8086的内部结构
8086的内部结构
1.寄存器:
8086包含了8个16位的通用寄存器,分为AX、BX、CX、DX、SI、DI、BP和SP。
其中AX寄存器又被分为两个8位的子寄存器AH和AL。
这些寄
存器用于存储数据、地址和控制信息,可以进行各种算术和逻辑操作。
此外,8086还有一些特殊的寄存器,如标志寄存器FLAGS用于存储标志位,IP指令指针寄存器用于存储下一条指令的地址。
2.执行单元:
8086的执行单元包括指令执行单元、算术逻辑单元(ALU)和控制单元。
指令执行单元负责从内存中读取指令,并根据指令的操作码执行相应
的操作。
ALU用于进行算术和逻辑操作,如加减、与或非等。
控制单元用
于控制指令的执行顺序和分支跳转。
3.数据总线和地址总线:
8086有一个16位的数据总线,用于传输数据。
它还有一个20位的
地址总线,用于寻址内存中的数据和指令。
通过这两条总线,8086能够
与外部存储器、输入输出设备等进行数据的读写和通信。
4.总线控制器:
5.输入输出控制器:
6.内存管理单元(MMU):
7.控制信号产生器:
总的来说,8086的内部结构是一个复杂的系统,包括寄存器、执行单元、数据总线和地址总线、总线控制器、输入输出控制器、内存管理单元和控制信号产生器等组件。
这些组件相互协作,使得8086能够进行数据的处理和存储,实现指令的执行和数据的输入输出。
8086结构组成
8086结构组成一、简介8086是英特尔(Intel)公司于1978年推出的16位微处理器,是第一款具有高度通用性的微处理器。
8086结构包括各种功能部件,如寄存器组、运算单元、控制单元等。
本文将详细介绍8086的结构组成和各个组成部分的功能。
二、8086结构组成1. 寄存器组8086包含了多个寄存器,用于存储各种数据和地址信息。
寄存器组包括通用寄存器、指令指针寄存器、段寄存器等。
1.1 通用寄存器8086拥有四个16位的通用寄存器:AX、BX、CX、DX。
这些寄存器可以用于存储数据、地址以及进行运算。
1.2 指令指针寄存器指令指针寄存器IP存储当前执行指令的地址,可以进行程序的跳转和控制。
1.3 段寄存器8086采用段寄存器和偏移地址的方式来定位内存中的数据。
段寄存器包括代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。
2. 运算单元8086拥有一个功能强大的运算单元,可以执行各种运算和逻辑操作。
运算单元包括算术逻辑单元ALU、标志寄存器FLAGS等部件。
2.1 算术逻辑单元(ALU)ALU是8086中重要的组成部分,负责执行各种算术和逻辑运算,如加法、减法、与、或等。
2.2 标志寄存器(FLAGS)FLAGS寄存器用于存储运算结果的状态信息,包括进位标志、零标志、溢出标志等。
这些标志位可以帮助程序进行条件分支和判断。
3. 控制单元控制单元是8086中负责控制和协调各个部件工作的组成部分。
主要包括指令译码器、时钟发生器等。
3.1 指令译码器指令译码器用于解析指令,将指令转化为相应的控制信号,控制其他部件的工作。
3.2 时钟发生器时钟发生器为8086提供稳定的时钟信号,用于同步各个部件的工作,确保指令能够按序执行。
4. 外部接口8086能够与外部设备进行通信,包括输入输出接口和存储器接口。
4.1 输入输出接口输入输出接口负责将内部数据和外部设备进行数据交换,通过输入输出指令控制。
8086CPU结构介绍及基础知识
分段管理的特点: ①起始点可浮动; ②可分开或重叠; ③实际地址由段地址、段内偏移地址组成; ④段首地址必须能被16整除
• 2、物理地址的形成
逻辑地址:存储器的任一个逻辑地址由段基址和偏移地址组成,程序设计时采 用。
•
段基址:偏移地址
物理地址:存储器的绝对地址,从00000~FFFFFH,它是由逻辑地址变换而来。
二、8086CPU的内部结构 8086CPU内部按功能可分为两部分: 1、BIU(总线接口部件) 功能:地址形成、取指令、指令排队、
读/写操作数、总线控制 2、EU(执行部件) 功能:指令译码、指令执行
组成部件见下页图
8086CPU的内部组成
执行单元(EU)
总线接口单元(BIU)
1、BIU ①段寄存器
例2-2
• 将5394H与-777FH两数相加,并说明其标志位状态
•
0101 0011 1001 0100
•+
1000 1000 1000 0001
•
1101 1100 0001 0101
• 运算结果:-23EBH
• 标志位:CF=0,DF=0,AF=0
•
ZF=0,SF=1,OF=0
控制标志位的名称和定义如下:
三寄存器结构目的变址寄存器destinationindexsidibpspax累加器accumulatorbx基数寄存器basecx计数寄存器countdx数据寄存器dataahbhchdhalblcldlipflagsdsessscs数据段寄存器datasegment附加段寄存器extrasegment堆栈段寄存器stacksegment代码段寄存器codesegment标志寄存器flags指令指针寄存器instructionpointer变址寄存器段寄存器控制寄存器通用寄存器源变址寄存器sourceindex基址指针寄存器basepointer堆栈指针寄存器stackpointer指针寄存器数据寄存器8086cpu寄存器组1通用寄存器组?常用来存放参与运算的操作数或运算结果?特殊用途见p25表212指针和变址寄存器?可作通用寄存器存放一般操作数或运算结果?作指针和变址寄存器用于存放某段地址偏移量3段寄存器?用于存放逻辑段的段基地址4指令指针和标志位寄存器?ip存放下一条指令在现行代码段中的偏移地址由biu自动修改
8086cpu的结构和功能
8086cpu的结构和功能8086CPU是由英特尔公司开发的一款经典的16位微处理器。
它是在20世纪80年代初面世的,也是当时最新一代的微处理器。
8086CPU具有复杂的结构和强大的功能,为计算机技术的发展做出了重要贡献。
本文将从多个方面介绍8086CPU的结构和功能。
首先,我们来了解8086CPU的整体结构。
8086CPU包括两个主要部件:执行部件和总线控制部件。
执行部件由数据总线单元(DBU)、算术逻辑单元(ALU)和寄存器组成,负责实际进行数据的处理和运算。
总线控制部件包括指令队列、指令译码器和时序控制器,负责控制数据和指令的传输以及处理器的时序控制。
这种分离的结构使得8086CPU 具有高效的指令执行能力。
其次,我们来探讨8086CPU的功能特点。
8086CPU具有许多强大的功能,包括多种数据类型支持、分段式寻址、以及可扩展的指令集等。
首先是多种数据类型支持。
8086CPU支持多种数据类型,包括字节、字和双字等。
这使得它能够处理各种不同类型的数据,适应了不同应用场景的需求。
其次是分段式寻址。
8086CPU采用分段式寻址的方式,将内存划分为多个段,每个段具有独立的段地址。
这种寻址方式可以灵活地管理内存,提高内存的利用率,并且方便编程。
最后是可扩展的指令集。
8086CPU的指令集非常丰富,包括各种数据处理、逻辑控制、输入输出、以及字符串操作等指令。
同时,8086CPU还支持通过软件扩展指令集,满足用户的个性化需求。
总之,8086CPU作为一款经典的微处理器,具有复杂的结构和强大的功能。
它为计算机技术的发展做出了重要贡献,为后续的微处理器设计奠定了基础。
通过多种数据类型支持、分段式寻址和可扩展的指令集等特点,8086CPU实现了高效的数据处理和灵活的内存管理,为用户的应用提供了广泛的功能支持。
参考文献:1. Patterson, D.A., & Hennessy, J.L. (2017). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann.2. Kip Irvine. (2016). Assembly Language for x86 Processors. Pearson.。
8086-8088系统结构
段地址 偏移地址(偏移量)
格式为:段地址:偏移地址 偏移地址 60000H
段首地址
=0002H
60002H 00H
12H
××× ••• ××× 0000
段基地址(16位)
物理地址=段基地址×16+偏移地址
16位
微机原理
段基址
0000
+
段内偏移
物理地址
20位
BIU中的地址加法器用来实现逻辑地址到物理地址的变 换
8088
AD7~AD0
S0 S1 8288 S2 DT/R DEN ALE
8282
STB OE
8282
STB OE
8282
S
OE
AIOWC AMWC IOWC IORC MRDC
A19~A16
A15~A8
A7~A0 D7~D0
图
8088 最大模式下总线形成
微机原理
微型计算机基本原理与接口技术
STB
OE
IO/M RD WR
A19~A16
A15~A8
A7~A0
DT/R DEN
A
B
8286
T
OE
D7~D0
8088 系 统 总 线 信 号
图
8088 最小模式下总线形成
微机原理
2. 最大模式下的系统总线
时钟 发生器
8284
MN/MX
S0
S1
CLK
S2
READY RESET
A19~A16
A15~A8
3.存储器的分段
微机原理
逻辑段:每个逻辑段容量不超过64K字节, 可用16位地址码直接寻址。
段间关系:各个逻辑段之间可在实际存储空 间中完全分开,也可以部分重叠,甚至可以 完全重叠。 物理地址定位:通过段地址 和相对地址确定。
8086-8088微处理器的内部结构
3 段寄存器与指令指针寄存器
微机原理
CS:代码段寄存器 DS:数据段寄存器 SS:堆栈段寄存器 ES:附加段寄存器 IP:指令指针寄存器
注意:DS、SS和ES寄存器的内容可由程序 设置,而CS寄存器的内容不能用程序设置
4.标志寄存器FLAG
微机原理
用于存放CPU工作过程中的状态,其中9位有
定义, 9位中6位表示状态,3位表示控制标志。 (1)状态标志位
OF:溢出标志位(Overflow Flag )。 当两个带符号数进行运算产生溢出时, OF=1;否则OF=0。
微机原理
例:十六进制数0CCCCH与十六进制数5115H相加, 请写出运算后六个标志状态位的值。 解: 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 (0CCCCH)
+ 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 (5115H) 10 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1
1.2 8086/8088 内部寄存器
寄存器
AX BX CX DX
运算器
状态寄存器
控制器
处理器
指
控制逻辑
令 寄
存 器
寄存器
IP
CS
BP
DS
SI
SS
DI
ES
SP
主存
取指
微机原理
微 处 理 器 一 般 编 程 结 构
通用寄存器组
微机原理
AX:累加器。可分成两个八位寄存器AH、 AL使用。
BX:基址寄存器。可分成两个八位寄存 器BH、BL使用。
与•标外志部寄总存器线—相—连FLAG
CPU
•段寄存器组
(CS、DS、SS、ES)
8086-8088CPU系统结构
1.2 8086/8088寄存器结构及用途
1.1.3 指针寄存器和变址寄存器
▲指针寄存器:
♣ SP:堆栈指针寄存器 ♣ BP:基址指针寄存器
▲变址寄存器:
♣ SI:源变址寄存器 ♣ DI:目的变址寄存器
汇编语言程序设计
8086/8088CPU系统结构
• 1.1 Intel8086/8088微处理器的结构 • 1.2 8086/8088寄存器结构及其用途 • 1.3 8086的存储器组织
• 1.4 堆栈
1.1 Intel8086/8088微处理器的结构
• 1.1.1 8086微处理器的结构
8086微处理器由两大部分组成: ♣ 执行部件EU ♣ 总线接口部件BIU 其内部结构如图(P20 图1.1)
1.3 8086的存储器组织
• 1.3.2 存储器的分段结构
◆8086CPU的寻址能力为:220=1MB; ◆8086CPU的内部寄存器为16位,直接 寻址:216=64KB; ◆在8086系统中引入逻辑段的概念:把 的地址空间划分为任意个逻辑段,长度 为64KB。
1.3 8086的存储器组织
• 1.3.3 物理地址和逻辑地址
▲是CPU与外部存储器、I/O设备的接口;
▲BIU由以下几部分组成: ♣16位指令指针寄存器IP; ♣指令队列; ♣4个16位段寄存器CS、DS、ES、
SS; ♣20位地址加法器; ♣总线控制部件。
1.1.1 8086微处理器的结构
• 3. BIU和EU的管理
▲二者处于并行的工作状态和重叠的工 作方式; ▲相互配合,协调工作; ▲充分利用总线实现最大限度的信息传 输,提高了程序的执行速度。
8086-CPU内部结构
课题:8086微处理结构一、8086 CPU的内部结构:图解分析:1、8086 CPU从功能上可分为:总线接口部件BIU(Bus Interface Unit)执行部件EU(Execution Unit)2、BIU:负责与存储器、外部设备之间进行信息交换。
功能:①负责从内存指定单元取出指令,并送到6字节的指令队列中排列;②同时负责从内存指定单元取出指令所需的操作数并送EU;③EU运算结果也由BIU负责写入内存指定单元。
组成:20位的地址加法器段寄存器(CS、DS、ES、SS)指令指针(IP)指令队列缓存器总线控制电路各组件功能:①地址加法器:计算并形成CPU要访问的内存单元的20位物理地址;②段寄存器:用于存放对应段的段基址;③指令指针寄存器:用于存放下一条要执行的指令的偏移地址;④指令队列:是6字节的“先进先出”的RAM存储器,用于顺序存放CPU要执行的指令,并送EU去执行;⑤总线控制电路:产生总线控制信号,如存储器读/写、I/O读写控制信号。
3、EU:负责指令的执行。
功能:①负责从BIU的指令队列中取得指令、分析指令、执行指令,并将结果存入通用寄存器或由BIU写入内存单元;②同时负责计算操作数所在内存单元的偏移地址。
组成:算术逻辑单元(ALU)标志寄存器通用寄存器:数据寄存器:AX、BX、CX、DX指针和变址寄存器:SP、BP、SI、DIEU控制电路各组件的功能:①算术逻辑单元(ALU):对操作数进行算术和逻辑运算,也可按指令的寻址方式计算出CPU要访问的内存单元的16位偏移地址;②标志寄存器:用于反映算术和逻辑运算结果的状态;③数据寄存器:用于保存操作数或运算结果等信息;④指针和变址寄存器:用于存放操作数所处存储单元的偏移地址;⑤EU控制电路:接收从BIU指令队列中取得的指令,分析、译码,以便形成各种实时控制信号,对各个部件实现特定的控制操作。
微机原理 第2章_8086系统结构
8086 CPU的引脚及其功能
8086 CPU的两种工作模式
最小模式:用于单机系统,系统所需要的控 制信号由8086直接提供,MN/MX=1,CPU 工作于最小模式 最大模式:用于多处理机系统,系统所需的 控制信号由总线控制器8288提供, MN/MX=0,CPU工作于最大模式
8086 CPU在最小模式下的引脚定义 8088与8086的区别
通 用 寄 存 器
AX BX CX DX SP BP SI DI
8086 CPU结构框图
20位地址总线
Σ
数据 总线 16位
ALU数据总线 (16位) 暂存器
队列 总线 (8位)
CS DS SS ES IP 内部寄存器 指令队列
总线 控制 电路 8086 总线
ALU
标志寄存器
EU 控制器
1 3 4 5 6
PSW
存放状态标志、控制标志和系统标 志
PSW格式:
15 11 10
OF DF
9 IF
8
7
6
4 AF
2 PF
0 CF
TF SF ZF
状态标志
状态标志用来记录程序中运行结果的状态信息,它们根据有关指 令的运行结果由CPU自动设置,这些状态信息往往作为后续条件 转移指令的转移控制条件,包括6位: OF:溢出标志,在运算过程中,如操作数超出了机器数的表示范 围,称为溢出,OF=1,否则OF=0 SF:符号标志,记录结果的符号,结果为负SF=1,否则SF=0 ZF:零标志,运算结果为0,ZF=1,否则ZF=0 CF:进位标志,进行加法运算时从最高位产生进位,或减法运算 从最高位产生借位CF=1,否则CF=0 AF:辅助进位标志:本次运算结果,低4位向高4位产生进位或借 位,AF=1,否则AF=0 PF:奇偶标志,用来为机器中传送信息时可能产生的代码出错情 况提供检验条件,当结果操作数中低8位中1的个数为偶数时PF=1, 否则PF=0
2.第二章 8086系统结构
总线接口部件BIU SI:(Source Index):SI含有源地址意思,产 生有效地址或实际地址的偏移量。 总线接口部件BIU内部设 有四个16位段地址寄存器: DI:(Destination Index):DI含有目的意思, 代码段寄存器CS、数据段寄 产生有效地址或实际地址的偏移量。 存器DS、堆栈段寄存器SS和 播 音 附加段寄存器ES,一个16位 : 指令指针寄存器IP,一个6字 16位字利用了9位。 标志分两类: 节指令队列缓冲器,20位地 状态标志(6位):反映刚刚完成的操作结果情况。 址加法器和总线控制电路。
志(结果低8 CLC(复位), 位1的个数 CMC(求反)。 为偶数 PF=1) 。
15
14
13
12
11
10
9
8
3
2
1
0
OF DF IF TF
SF ZF
AF
PF
CF
DF:方向标志 .DF=1使串 操作按减地址进行,DF=0按 增地址进行。指令: CLD(复位), STD(置位).
TF:陷阱标志或单步操作标志 IF:中断允许 标志 图 2-6 8086CPU标志寄存器 目录
通用寄存器(数据寄存器) : AX 累加器 BX 基址寄存器 CX 计数寄存器 DX 数据寄存器
SP BP SI DI
IP
地址指针和变址寄存器: SP 堆栈指针寄存器 BP 基址指针寄存器 SI 源变址寄存器 控制寄存器: DI 目的变址寄存器 IP 指令指针寄存器
FLAGS
CS DS SS ES
段寄存器: CS 代码段寄存器 DS 数据段寄存器 SS 堆栈段寄存器 ES 附加段寄存器
EU 总线 忙
执行1 忙
执行2 忙
8086微处理器的内部结构
各个逻辑段允许重叠
例如,如果代码段中的程序占有8KB(2000H)存储区, 数据段占有2KB(800H)存储区,堆栈段占有256个字 节的存储区。此时分段情况如图所示。
代码段的区域本可为 02000H ~ 11FFFH (64KB),由于程序 区只需要8KB,所以 程序区结束后的地址 就可作为数据段的起 始地址(04000H) 注意:这里所谓的重叠只是指每个区段的大小允许根据 实际情况分配,而不一定非要占有64KB的最大段空间。
程序设计过程中必须遵守的系统内部约定:
如果访问存储器要求读/写操作数,则通常由DS给 出段地址(必要时可修改为CS、ES或SS),而其偏移 地址要由CPU的指令执行部件根据指令中所给定的寻 址方式来进行计算,通常将这样计算得到的偏移地址称 为有效地址(EA)。
如果所采用的寻址方式是通过基址指针BP寻址,则 段地址要由SS提供(必要时可以修改为CS、DS或ES)。
数据总线
通用寄存器
8086 暂存寄存器
ALU数据总线 (16位)
CS DS SS ES IP 内部通信 寄存器
(16位)
总线 控制 逻辑
8086 总线
ALU
EU 控制 系统
Q总线 16位
指令队列
1 2 3 4 5 6
总线接口部件 (BIU)
标志
指令执行部 件(EU)
1. 指令执行部件EU 由算术逻辑单元(ALU)、标志寄存器、通用寄存 器组和EU控制器等部件组成。 主要功能是执行指令: ○一般顺序执行,EU不断地从指令队列中取指令连 续执行,而省去访问存储器取指令的时间。 ○需要访问存储器取操作数时,EU将访问地址送给 BIU后,将要等待操作数到来后才能继续操作; ○遇到转移类指令时,要将指令队列中的后续指令 作废,等待BIU重新从存储器取出目标地址中的指令代 码进入指令队列后,EU才能继续执行指令。
80888086的功能结构
8088/8086的功能结构一、8088/8086的结构8086与8088在结构上都是由和两大部份组成。
以下是8088/8086的内部结构框图。
执行单元EU负责执行指令。
EU在工作时不断地从指令队列掏出指令代码,并完成指令所要求的操作。
它由算术逻辑单元ALU、通用寄放器REGs、标志寄放器FLAGS和EU操纵部件组成。
各部件的功能如下:ALU:即运算器,进行算术、逻辑、移位、偏移地址计算等各类运算。
FLAGS:寄存运算结果的特点,如进借位、是不是为零、奇偶性、溢出等。
REGs:临时寄存操作数、运算结果和操作数地址等。
EU操纵部件:接收指令队列中的指令,进行指令译码、分析,形成各类操纵信号,实现EU 各个部件完成规定动作的操纵。
总线接口单元BIU负责CPU与存储器、I/O接口之间的信息(包括数据、地址、操纵命令等)传送。
包括生成访问存储器所需的20位的物理地址、不断从内存中取指令并送到指令队列、和配合EU对指定的内存单元或外设端口进行数据存取操作。
BIU由段寄放器、指令指针寄放器IP、指令队列、地址加法器和总线操纵逻辑组成。
各部件的功能如下:总线操纵逻辑:CPU与外总线之间的接口,实现指令、数据和其他外部信息的存取。
段寄放器:寄存存储器段的段基地址。
指令指针寄放器:寄存当前要读取的指令的地址。
它相当于前面介绍过的。
指令队列:8088和8086的指令队列长度别离为4字节和6字节,为FIFO(先进先出)结构。
当EU从指令队列中取走指令,指令队列显现空字节时,BIU就自动执行一次取指令周期,从内存中掏出后续的指令代码放入队列中。
当EU需要数据时,BIU依照EU给出的地址,从指定的内存单元或外设中掏出数据供EU利用。
当运算终止时,BIU将运算结果送入指定的内存单元或外设。
当指令队列空时,EU就等待,直到有指令为止。
假设BIU正在取指令,EU发出访问总线的请求,那么必需等BIU取指令完毕后,该请求才能取得响应。
微机原理与接口技术第2章8086系统结构
第二章8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。
指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。
总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。
2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
从速度上看,该指令队列是在CPU 内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。
3.8086CPU中有哪些寄存器?各有什么用途?答:指令执行部件(EU)设有8个16位通用寄存器AX、BX、CX、DX、SP、BP、SI、DI,主要用途是保存数据和地址(包括内存地址和I/O端口地址)。
其中AX、BX、CX、DX主要用于保存数据,BX可用于保存地址,DX还用于保存I/O端口地址;BP、SI、DI主要用于保存地址;SP用于保存堆栈指针。
标志寄存器FR用于存放运算结果特征和控制CPU操作。
BIU中的段寄存器包括CS、DS、ES、SS,主要用途是保存段地址,其中CS代码段寄存器中存放程序代码段起始地址的高16位,DS数据段寄存器中存放数据段起始地址的高16位,SS堆栈段寄存器中存放堆栈段起始地址的高16位,ES扩展段寄存器中存放扩展数据段起始地址的高16位。
8086的内部结构
AX BX CX DX
SI
DI BP SP
其中前4个数据寄存器都还可以分成高8位和低8位两 个独立的寄存器。对其中某8位的操作,并不影响 另外对应8位的数据。
8086的8位通用寄存器是:
AHBH CH DH
AL BL CL DL
EU--数据寄存器
• 数据寄存器用来存放计算的结果和操作数 • 每个寄存器又有它们各自的专用目的:
FLAG--中断允许标志IF(Interrupt-
enable Flag)
• 用于控制外部可屏蔽中断是否可以被处 理器响应:
设置IF=1,则允许中断; 设置IF=0,则禁止中断。
• CLI指令复位中断标志:IF=0
• STI指令置位中断标志:IF=1
FLAG--单步执行标志TF(Trap Flag)
EU--指针寄存器
• 指针寄存器用于寻址内存堆栈内的数据 • SP为堆栈指针寄存器,指示栈顶的偏移地址 • SP不能再用于其他目的,具有专用目的 • BP为基址指针寄存器,表示数据在堆栈段中的
基地址 • SP和BP寄存器与SS段寄存器联合使用以确定
堆栈段中的存储单元地址
详见堆栈操作指令
EU--标志寄存器(FLAG)
8086的寄存器组
8086的寄存器(如图)都为16位,分为:
EU:8个通用寄存器 CU:1个指令指针寄存器 EU:1个标志寄存器 BIU:4个段寄存器
掌握通用寄存器的作用 熟悉各个标志的含义 切实理解存储器组织和存储空间分段的概念
8086的寄存器组
EU--通用寄存器
8086的16位通用寄存器是:
注意:gn Flag)
• 运算结果最高位为1,则SF = 1;否则SF = 0。 例如: