8088微处理器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

总线
运算寄存器
EU 控 制系统
指令队列 Q总线 (8位) 1 2 3 4 5 6 8088 8086
ALU
标志寄存器
执行单元 EU
总线接口 单元BIU
寄存器
通用寄存器 段寄存器
AH BH CH DH
AL BL CL DL
AX,累加器 Accumulator BX,基数寄存器 Base CX,计数寄存器 Count DX,数据寄存器 Data
方向标志DF(Direction Flag): 用于串操作指令中的地址增量修改 (DF=0)还是减量修改(DF=1)。 STD CLD 跟踪标志TF(Trap Flag): 若TF=1,则CPU按跟踪方式(单步方 式)执行程序。
BIU与EU的动作管理 * 关于流水线计算机(Pipeline Computer) 这类计算机的结构采用生产上的流水线概念, 把每条指令分为若干个顺序的操作,每个操作分别 由不同的处理部件实现。这样构成的计算机,可以 同时处理若干条指令,对于每个处理部件来讲,每 条指令的同类操作(如“取指令”)像流水一样连 续被加工处理,这种指令重叠、处理部件连续工作 的计算机,称为流水线计算机。 采用流水线方式可以提高计算机的处理速 度和提高处理部件的使用效率。
8086/8088CPU的功能框图
通 用 寄 存 器 AH AL BH BL CH CL DH DL SP BP DI SI AX BX CX DX

地址总线 20位 数据总线 8088:8位 8086:16位
段寄存器
指令指针
ALU数据总线(16位)
CS DS SS ES IP 内部暂存器
总线 控 制逻辑 外部
CPU执行指令的过程,可具体分为六个步骤:
1.取指(fetch); 2.译码(decoding); 3.计算有效地址(EA:Effective Address); 4.取操作数; 5.执行 6.存储运算结果
概括的说,可分为“取指令”和“执行指令” 两个步骤。
*流水线示意图
0 第一条指令 取指 1 2 3 4 5 执行 存结果 执行 存结果 执行 存结果 6 7 8
分类: •电源、地(GND) •数据(A)D0-D7(15) •地址 A0-A19 •控制信号等
8088 CPU
MN/MX
RD
HOLD(RQ/GT0) HLDA(RQ/GT1) WR(LOCK) IO/M(S2) DT/R(S1) DEN(S0) ALE(QS0) INTA(QS1) TEST READY RESET
0 0
段基值 逻辑地址
2 2 3 4
+) 0 0 2
0
2
0 0 2 2
偏移量
2 2 3 6
2
物理地址
执行单元EU
(Execution Unit)
EU组成: ALU(算术逻辑单元); 通用寄存器组 AX, BX, CX, DX; » BP(基址指针寄存器) » SP(堆栈指针寄存器) » SI(源变址寄存器) » DI(目的变址寄存器) 标志寄存器PSW 执行部件控制电路
8086/8088088CPU的结构特征 总线接口部件BIU 执行部件EU 8086/8088的引脚信号及工作模式 8086/8088总线操作
8086/8088CPU的结构特征
概况: ◆ 1979年推出,第一代超大规模集成电路(VLSI) 微处理器,采用HMOS工艺制造,内含2.9万晶体管。 ◆ 数据总线宽度16位,地址总线宽度20位;可直接 寻址空间220=1M字节单元;16位数据总线与地址总线 复用。 ◆ 采用单一的+5V电源,一相时钟,时钟频率为 5MHz(8086),10MHz(8086-1),8MHz(8086- 2)。 ◆ 133条指令,指令长度1~6字节。 ◆ Intel 8088—准16位处理器,内部寄存器及内部操 作均为16位,外部数据总线8位。 ◆ 8088与8086指令系统完全相同,芯片内部逻辑结构、 芯片引脚有个别差异。
EU功能:负责执行指令
标志寄存器(PSW)格式
状态标志表示前面的操作执行后,算术逻辑部件处于怎样一 种状态。例如,是否产生了进位,是否发生了溢出等等。程序中, 可以通过对某个状态标志的测试,决定后面的走向及操作。
15 14 13 12 11
OF
10
DF
9
IF
8
TF
7
SF
6
ZF
5
4
AF
3
2
PF
1
0
CF
数据/地址线 (20根) 数据线(DB)与地址线(AB):
AD7~AD0:三态,地址/数据复用线。在一个总 线周期中,T1时地址信号发出,T3时数据信号发 出,地址与数据分时复用,因此地址需加锁存器 锁存。
② 除非专门指定,一般情况下,段在存储器 中的分配是由操作系统负责的。
解释:
1000 CS
100 IP
3000 DS 4000 SI 、BX
00000h
内存
移位、 加法
10000
代码段 64K
1000:0000
30000 0 3000:0000 地 + 20位物理地址 数据段 64K 10100 34000 址 译 90000 SS 9000:0000 堆栈段 64K 码 BP、SP 器 B0000 B000:0000 ES 附加段 64K
分段概念
段起始地址的高16位称为“段基址”,要 访问的单元距段基址的距离(字节数)为 “偏移量”(Offset)
段的起始地址
偏移量 段
要访问的单元
逻辑地址
程序设计时,使用的是逻辑地址。逻辑地址由 “段基址”和“偏移量”构成(均为16位)。 表示方法:段基址:偏移量 “段基址”由段寄存器CS、DS、SS和ES提供; “偏移量”由BX、BP、IP、SP、SI、DI或根 据寻址方式计算出的有效地址EA(Effective Address)提供。
奇偶标志PF(Parity Flag): 若运算结果低8位中“1”的个数为偶数, 则PF=1;否则PF=0。
例: MOV AL, 2 ADD AL, 1 执行后,PF位为1
符号标志SF(Symbol Flag): 若运算结果的最高位为1时,SF=1,否则 SF=0
辅助进位标志AF(Auxiliary Carry Flag): 又称“半进位标志” 加法时,第3位向第4位有进位; 减法时,第3位向第4位有借位。
方向标志 控 制 标 志
进位标志 奇偶标志 半进位标志 零标志 符号标志 溢出标志
中断标志
跟踪标志 Trace Flag
状 态 标 志
例如:STATE: IN JZ
AL, 0DAH; STATE
TEST AL, 02 零标志ZF(Zero Flag):
若运算结果为0,则ZF=1;否则ZF=0。
例 1:
例 2:
MOV AL, 4
SUB AL, 4 XOR AX, AX 执行后,ZF为1
进位标志CF(Carry Flag):
加法时,最高位(字节操作时的D7位,字 操作时的D15位)是否有进位产生。 减法时,最高位(字节操作时的D7位,字 操作时的D15位)是否有借位产生。
例如: MOV AL, 3; SUB AL, 4; 执行后,CF=1
译码 计算EA 取数 取指
第二条指令
译码 计算EA 取数 取指
第三条指令
译码 计算EA 取数
可见,3条指令共需8个时间单位,即可全部执行完; 如果完全串行执行,则需3X6=18个时间单位。显然,采 用“流水线”技术可以显著提高计算机的处理速度。
BIU与EU动作管理示意图
“早期的计算机”将“取指令”和“执行指令”两个步骤 采用先后轮流动作(串行),CPU效率较低。
溢出标志OF(Overflow Flag): 若运算过程中发生了“溢出”,则OF=1。 定义:运算结果超出计算装置所能表示的 范围,称为溢出。
控制标志(IF、DF、TF): 每一位控制标志都对一种特定的功能起控制作 用。可以通过专门的指令对其进行“置位”( Set) 或“复位”(Reset)。 中断标志IF(Interrupt Enable Flag): 如果IF置“1”,则CPU可以接受可屏蔽中断请 求;反之,则CPU不能接受可屏蔽中断请求。 指令系统中有两条专门的指令可以置“1”或置 “0” IF标志位: STI 使IF置“1”,即开放中断。 CLI 使IF清“0”,即关闭中断
物理地址: 地址加法器用来产生20位的物理地址。 一个存储单元具有两种地址属性:物理 地址和逻辑地址。 物理地址:CPU访问存储器时,在地址总 线上实际送出的地址。 它的范围是: 00000H~FFFFFH 即有220=1M字节的地址空间。
分段概念
8086/8088的内部寄存器是16位(20位地 址的宽度大于字长)。显然,不能用16位 的寄存器来实现对220=1M字节单元的寻址。 为此,引入了存储器“分段”的概念,即 把1M字节内存空间分成若干段。每段最大 可达64K字节--可由16位寄存器进行寻址。 ( 216=64KB)
由逻辑地址获得物理地址的计算公式 物理地址=段基址×16+偏移量
逻辑地址
15 0 段基址 3 0
0000
15 0 偏移量

19 0 物理地址
物理地址
注意 ①每个存储单元有唯一的物理地址,但它却 可由不同的“段基址”和“偏移量”组成。 例如:
1200H:0345H12345H 1100H:1345H12345H
SI
FFFFFh
1M
举例1 设(CS)=4232H ,(IP)=0066H
段起址 物理地址计算如下 42320H +) 66H 42386H 64K 段终址
42320H 66H 42386H 64K (216)
5231FH
举例2 假设 (DS)=2234H ,EA=22H
15 2 2 3 4 15
目的变址寄存器 Destination Index 基址指针寄存器 Base Point 堆栈指针寄存器 Stack Point
状态标志寄存器 Processor Status Word
控制寄存器
编程结构
两部分组成:总线接口部件BIU (Bus Interface Unit); 执行部件 EU (Execution Unit). 总线接口部件BIU组成: 4个16位的段寄存器(CS、DS、ES、SS) 1个16位的指令指针寄存器IP 1个地址加法器 内部暂存器 4~6个字节的指令队列 输入/输出控制电路(总线控制逻辑)
传统的CPU顺序执行指令的过程是:取指令->执行 指令->再取指令->……,串行执行。 8086是把“取指令”和“执行指令”分别由BIU和EU两个 部件来完成。当EU正在执行指令时,BIU可以从内存中 取出指令字节,放在指令队列中。这样,使得“取指令” 和“执行指令”的操作在时间上是并行的。
BIU和EU协调配合,使EU可以连续不停一条接一条地执 行事先已进入指令队列中地指令。显然,这种工作方式可 以加快程序地执行,提高了CPU地效率。体现了“流水线 计算机”(PipeLine Computer)的初步特点。(后面介 绍)
取指1 执行1 取指2 执行2 取指3 执行3
在流水线方式下,同时动作(并行)完成指令周期,CPU 效率高。
BIU EU 取指1 取指2 执行1 取指3 执行2 取指4 执行3 •••••• ••••••
8086/8088的引脚信号介绍
GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD4 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 /SS0(HIGH)
BIU的功能: 负责与内存或I/O端口传送指令或数据 ① BIU从内存取指令送到指令队列 ② 当EU执行指令时,BIU要配合EU从 指定的内存单元或I/O端口中读取数据,或 者把EU的操作结果送到指定的内存单元或 I/O端口去。 例如:① IN AL,50H ② ADD AL,[2035H]
指令队列
数 据 寄存器
DS ES SS CS
数据段寄存器 Data Segment 附加段寄存器 Extra Segment 堆栈段寄存器 Stack Segment 代码段寄存器 Code Segment
SI DI BP SP
源变址寄存器 Source Index
变 址 寄存器
IP
PSW
指 针 寄存器
指令指针寄存器 Instruction Pointer
相关文档
最新文档