第 2 章 8086/8088 系统硬件结构
DESCRIPTION
见教材 2.3 ~ 2.4. 第 2 章 8086/8088 系统硬件结构. 2.1 8086 CPU 的结构特点 2.2 8086 寄存器结构 2.3 8086/8088 的内部结构. 2.1 8086 CPU 的结构特点. 1 、 8086 在结构上引入了两个重要概念: 并行流水线 和 存储器分段 ,并在 Intel 系列微处理器的升级换代中一直被沿用和发展。 对内存空间实行分段管理: 每段大小为 16B ~ 64KB 用段地址和段内偏移实现对 1MB 空间的寻址 设置段基址寄存器指示段的首地址 - PowerPoint PPT PresentationTRANSCRIPT
第 2章 8086/8088 系统硬件结构
第 2 章 8086/8088 系统硬件结构
2.1 8086 CPU 的结构特点
2.2 8086 寄存器结构
2.3 8086/8088 的内部结构
见教材 2.3~2.4
第 2章 8086/8088 系统硬件结构
代发表年份
字长(bits)
型号线宽(m)
晶体管数( 万个 )
时钟频率(MHz)
速度(MIPS)
一1971
1972
4
8
4004
800850
0.2
0.3<1 0.05
二 1974 8 8080 20 0.5 2-4 0.5
三1978
198216
8086/80
88
80286
2-32.9
13.4
4.77-10
8-16
<1
1-2
四1985
198932
80386
804861-2
27.5
120
16-33
25-66
6-12
20-40
五 1993 32 Pentium 0.6-0.8 330 60-200 100-200
六
1995
1996
1997
1999
2001
32
P/Pro
P/MMX
PII
PIII
P4
0.6
0.6
0.35
.25-.13
.18-.13
550
450
750
850
4200
133-200
166-233
233-450
450-1200
1300-2400
>300
七 2002 64 Itanium 0.13CPU:2.5KCache:30K
800(20 条指令 / 时钟周期 )
>3000
第 2章 8086/8088 系统硬件结构
2.1 8086 CPU 的结构特点1 、 8086 在结构上引入了两个重要概念:并行流水线和存储
器分段,并在 Intel 系列微处理器的升级换代中一直被沿用和发展。对内存空间实行分段管理:
每段大小为 16B ~ 64KB用段地址和段内偏移实现对 1MB 空间的寻址设置段基址寄存器指示段的首地址
2 、 8086 数据总线和低 16 位地址总线采用分时复用方式。
3、支持多处理器系统。• 80486DX 以后的 CPU 均将数学协处理器作为标准部件集成到
CPU 内部。
第 2章 8086/8088 系统硬件结构
EU
BIU
第 2章 8086/8088 系统硬件结构
8086CPU 内部寄存器结构
第 2章 8086/8088 系统硬件结构
2.2 8086 寄存器结构
通用寄存器组包括 4个数据寄存器 AX、 BX 、 CX 、 DX ; 4个地址指针寄存器 SP、 BP 、 SI 、DI 。
在 8086/8088CPU中,可把寄存器分成通用寄存器和专用寄存器两大类。
1、数据寄存器:用来存放操作数及中间结果的通用寄存器。
一、通用寄存器组
16 位寄存器:AX,BX,CX,DX,SP,BP,SI,DI
8 位寄存器:AH,AL,BH,BL,CH,CL,DH,DL
有些寄存器有特殊功能
第 2章 8086/8088 系统硬件结构
数据寄存器特有的习惯用法 AX ( AL ):累加器,多用于存放中间运算结果。所有 I/O 指令必须都通过累加器与接口传送信息 。
BX :基址寄存器,在间接寻址中用于存放基地址。 CX :计数寄存器,用于在循环或串操作指令中存 放循环次数或重复次数。 DX :数据寄存器,在 32位乘除法运算时,存放高16位数;在间接寻址的 I/O 指令中存放 I/O 端口地址。
第 2章 8086/8088 系统硬件结构
用于存放操作数的地址,编程时通过修改寄存器的内容达到修改地址的目的。
2 、地址指针寄存器
变址寄存器:常用于指令的变址寻址。在串操作指令中,用 SI存放源操作数的偏移地址,用DI存放目标操作数的偏移地址。
SP: 堆栈指针,指示堆栈段( SS)中的栈顶位置,专门用于数据进栈和出栈的位置指示。BP: 基址指针,指示堆栈段中一个数据区中的基址位置。
SI :源变址寄存器DI :目标变址寄存器
BX :基址寄存器。在间接寻址中用于存放基地址。
第 2章 8086/8088 系统硬件结构
用于存放 4个当前可寻址的段基址——段的起始地址。
1、段(基址)寄存器
二、专用寄存器专用寄存器包括指令指针寄存器 IP、标志寄存器FLAGS ,以及 4个段基址寄存器 CS、 DS 、 SS 、 ES 。
8086/8088CPU对可寻址的 1MB 空间划分为多个逻辑段,每个逻辑段小于 64KB ,段内地址是连续的。
CS指示当前的代码段,用于存放指令代码;DS 指示当前的数据段,用来存放操作数;ES 指示当前的附加段,用来存放操作数;SS 指示当前的堆栈段,用于存放返回地址,保存寄存器内容。
第 2章 8086/8088 系统硬件结构
物理地址
物理地址 ..
60000H 60001H 60002H 60003H 60004H
.
.
.
12HF0H
1BH08H
CPU 送到 AB 上的 20 位的地址称为物理(实际)地址。存储器的操作完全基于物理地址。问题:
8086/8088 的内部总线和内部寄存器均为 16 位,如何生成 20 位地址?解决:存储器分段
第 2章 8086/8088 系统硬件结构
存储器分段
高地址
低地址段基址
段基址
段基址
段基址
最大 64KB段 i-
1
段 i
段 i+1
有效地址 EA:正在使用的存储单元的地址与所在段的基地址的偏移量称为段内偏移量或者称为有效地址 EA。
第 2章 8086/8088 系统硬件结构
逻辑地址与物理地址 段基地址和段内偏移组成了逻辑地址 段地址 偏移地址 ( 偏移量 )
格式为:段地址 : 偏移地址
60002H 00H12H
60000H
0 0 0 0
段基地址( 16 位)
段首地址
× × × • • • × × ×
物理地址 = 段基地址 ×16+ 偏移地址
第 2章 8086/8088 系统硬件结构
物理地址的形成
∑
015段内偏移地址
段寄存器19 4~0
0000段地址左移 4位
20位物理地址19 0
5
第 2章 8086/8088 系统硬件结构
[ 例 ] :已知 CS=1055H , DS=250AH , ES=2EF0H , SS=8FF0H 。 DS 段有一操作数,其偏移地址 =0204H
1) 画出各段在内存中的分布 2) 指出各段首地址 3) 该操作数的物理地址 = ?
10550H
250A0H
2EF00H
8FF00H
CS
SS
CS
DS
ES解: 各段分布及段首址见右图所示。 操作数的物理地址为:
250AH×10H+0204H = 252A4H
第 2章 8086/8088 系统硬件结构
( 1)对存储器的任一位置的访问都是在该位置所在的段基址下进行的。 如访问一个地址 C85F:109A对应的物理地址
为 C85F0+109A=C968AH
( 2)同一个实际地址可以采取不同的逻辑地址形式表示,即不同段可以相互重叠。
例如:地址 12345H 可以表示为 1200:0345 或 1230:0045
逻辑地址与物理地址
第 2章 8086/8088 系统硬件结构
为了方便编写程序, 4 个段寄存器是隐含使用的,但也允许段超越。
存储器操作类型 隐含段 超越段 偏移量取指令 CS 无 IP
堆栈 SS 无 SP
数据变量 DS CS,ES,SS 有效地址源串变量 DS CS,ES,SS SI
目的串变量 ES 无 DI
基址BP指针 SS CS,ES,DS 有效地址
表 2.1 段寄存器使用约定
第 2章 8086/8088 系统硬件结构
CF:进位标志,若运算结果最高位产生进位或借位,则 CF置“ 1”,否则置“ 0”
AF:辅助进位标志,若低字节的第 4位上产生一个进位或借位,则 AF置“ 1”,否则置“ 0”。
ZF:零标志位,若运算结果为零,则 ZF置“ 1”,否则清零。
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0OF DF IF TF SF ZF AF PF CF
2 、标志寄存器
16 位标志寄存器 FLAGs
SF:符号标志位,若算术运算的结果为负, SF置“ 1”,否则清零。OF:溢出标志位,有符号数算术运算结果产生溢出 OF置“ 1”,否则清零。PF: 奇偶标志位,逻辑运算中低 8位所含 1的个数为偶数则 PF置“ 1”,否则清零。
(1) 状态标志位用来反映系统的状态及指令执行的结果。
第 2章 8086/8088 系统硬件结构
DF: 方向标志位 DF=1 串操作指令以递减顺序处理数据串; DF=0 以递增顺序处理数据串。
IF:中断允许位 若 IF=1, CPU 允许接受外部可屏蔽中断请求,即开中断; IF=0关中断
TF:跟踪标志位 TF=1 处理器处于单步工作方式,每执行完一条指令产生一个软件中断; TF=0 正常工作。
(2)控制标志位
第 2章 8086/8088 系统硬件结构
IP始终指向当前代码段 (CS) 所要取出的下一条指令的地址。每取出一个字节指令后, IP自动加 1。可以用转移指令、调用指令及中断和复位等改变 IP值。
3 、指令指针寄存器 IP
IP只能与 CS寄存器相互结合,才能形成指令的真正的物理地址。
第 2章 8086/8088 系统硬件结构
8086/8088CPU 内部的两大功能结构为总线接口单元 BIU(Bus Interface Unit) 和指令执行单元 EU
(Execution Unit) 。
2.3 8086/8088 的内部结构补充内容,仅供参考
第 2章 8086/8088 系统硬件结构
8088CPU 内部结构图
AH AL
BH BL
CH CL
DH DL
ͨÓüĴæÆ÷
SP
BP
SI
DI
Êý ¾Ý¼Ä´æÆ÷
Ö¸ÕëºÍ±äÖ·¼Ä´æÆ÷
ALUÊý¾Ý×ÜÏß(16λ)
ÔÝ´æ¼Ä´æÆ÷
EU¿ØÖƵç·
AX
BX
CX
DX
±êÖ¾¼Ä´æÆ÷
Ö´Ðе¥Ôª(EU) ×ÜÏß½Ó¿Úµ¥Ôª(BIU)
1 2 3 4 5 6
Ö¸Áî¶ÓÁлº³åÆ÷
(8λ)
ÄÚ²¿¼Ä´æÆ÷
IP
ES
SS
DS
CS
ALU
¡Æ
DB(16λ)
AB(20λ)
×ÜÏß¿ØÖƵç ·
8086×ÜÏß
DB(16λ)
µØÖ·¼Ó·¨Æ÷
第 2章 8086/8088 系统硬件结构
一、 EU EU 单元负责指令的执行,由算术逻辑单元 ALU 、标志
寄存器 FLAGs 、通用寄存器及 EU 控制器等组成,主要进行 16 位的各种运算及有效地址的计算。
EU 不与计算机系统总线 ( 外部总线 )相关,而从 BIU 中的指令队列取得指令。这个指令队列中,存放着 BIU预先由存储器中取出的若干个字节的指令 (8088 为 4 个字节, 8086 为 6 个字节长队列 ) 。
第 2章 8086/8088 系统硬件结构
二、 BIUBIU 单元用来实现 EU 的所有总线操作。它由地址加法器,段寄存器 CS 、 DS 、 SS 、 ES ,指令指针 IP ,指令队列缓冲器和总线控制逻辑组成。
BIU 负责 CPU 与存储器或外部设备之间的信息交换。
第 2章 8086/8088 系统硬件结构
在 8086/8088 中,由于 BIU 和 EU 是分开独立工作的,所以取指令和执行可以同时进行。
将取指令部分和执行指令部分分开的好处是,在EU 执行指令的过程中, BIU可以取出多条指令放入指令流队列中。当 EU 执行完一条指令后,就可以立即执行下一条指令,从而减少了 CPU 为取指令而等待的时间,提高了运算的速度。
第 2章 8086/8088 系统硬件结构
EU 与 BIU 并行工作情形
8 位微机指令执行过程