第4章 8086-CPU结构及其系统组成
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三个控制标志 DF(Direction flag) 方向标志 用于指定字符串处理指令的步进方向 DF= ‘1’ 递减方式,高地址向低地址方向进行 DF= ‘0’ 递增方式,低地址向高地址方向进行 可用指令复位和置位 IF (Interrupt Enable flag) 中断允许标志 该标志用于控制可屏蔽的硬件中断 IF= ‘1’ 允许中断 IF= ‘0’ 屏蔽中断 可用于指令复位和置位 TF(Trap flag) 陷阱标志(单步操作标志) TF= ‘1’ CPU执行一条指令后自动产生一个内部中断, 用于程序调试。
三.各功能部件 1.指令流队列 是一个内部RAM阵列,类似先进先出的栈队列, 8086/8088 最多在指令流队列中保存6/4个指令 字节。 目的:在执行指令的同时,可以取指令,加快程 序执行速度。 2.标志寄存器FLAG 16位标志寄存器 用了9位作标志,其中: 6个用作状态标志 3个用作控制
F15 O D
(段末址)
AB19~AB0 20位物理地址 ∑ 如:逻辑地址 17BC:FE36 物理地址 17BC0 + FE36 279F6H
段地址
偏移地址
特点:① 用逻辑地址表示,扩展可寻址范围 ②段可以重叠,一分物理单元,可以属于几个逻辑段 ③内存动态管理更简单有效,程序员不必知道代码存 放的具体位置,就可以开发软件。
与8085 8位CPU相比,增强更多功能:
①具有更丰富的寻址方式和更高性能的指令系统(133) 如有乘、除法,8080/8085无 ②具有指令流队列,使取指令和执行指令的操作能 并行执行,加快了CPU的指令执行速度。 ③具有性能更强,更加灵活简便的中断处理系统。 ④能组成多处理机系统,提高数据吞吐能力和处理能 力
§4-2
8086 CPU引脚信号功能
一、 8086工作方式 (最大方式简单一提,要学生自己看) 为了适应不同使用场合,8086具有两种工作 方式:最小方式和最大方式。 1、8086最小方式 系统中只有8086一个处理器MPU,在该系统中, 8086CPU直接产生所有总线控制信号,系统所需的 外加其他总线控制逻辑部件最少。
S5 指示当前IF的状态 S5=1——允许中断 S5=‘0’禁止中断 S4,S3组合指明当前正在使用是哪个段寄存器
S4 0 0 1 1 S3 0 1 0 1 当前使用的段寄存器 ES SS CS(M寻址),不用(当I/O端口或中断矢量) DS
3、控制信号 ① 系统控制信号 RD S6~ S3 ② CPU控制信号
④ P : 奇偶标志位 逻辑运算时,P用来反映Alu运算结果 ‘1’的个数的奇偶性 P=‘0’ 奇数个1 PO odd P=‘1’ 偶数个1 PE even 常用来检验数据传送是否为出错 ⑤ C : 进位标志 (Carry) Alu进行算术运算时,反映运算结果最高位有无 进位/借位 Cy=C7⊕N C=‘0’ 无进位/借位 NC 见P32例题L11~L3 C=‘1’ 有进位/借位 C ⑥ O :(Overflow) 溢出标志 判断带符号数加/减运算结果是否溢出。 O=‘1’ O 溢出 O=‘0’ NO 不溢出
第4章 8086-CPU结构及其系统组成
8086/8088-CPU结构 4-1 Intel 8086/8088-CPU结构 4-2 8086-CPU引脚信号功能 8086-CPU引脚信号功能 8086存储器管理 4-3 8086存储器管理 8086系统总线时序 4-4 8086系统总线时序
本章学习重点
FFFFFH
220-1
A19-A1地址线 A19-A1 00001H 00003H 00005H
CS
512×8 奇地址库 高字节
A19-A1 00000H 00002H 00004H
CS
512×8 偶地址库 低字节
BHE
8
FFFFFH D7-D0
FFFFEH D7-D0
8
D15-D8
D7-D0
A0
64K
ES 80000H SS A0000H DS B0000H
64K
64K 64K
将1Mbyte空间分成若干段 每段64K(最大) 每段首地址是一个能被16整除的地址 最低四位为 0000B XX┄┄XX0000B 最低一位为 0B XXXX0H 段的首地址的高16位称为段地址(段首址,段基址) 四种段地址分别可以存放在四个段地址寄存器中 CS,DS,SS,ES(扩展段) ①有效段地址:24 ,每隔16个单元就有一个有效段地址。 ②每段最大64K ,故段内任一存储单元可以用相对段首址 的16位偏移量来表示。 当前段的偏移地址: EA(effective address)
二、存储器的分段结构和物理地址的形成 AB19~AB0 220=1Mbyte 但 BX,IP,SP,BP,SI,DI,ALU皆为16位, 4 16=64K, 1M = 2 ⋅ 64K 可寻址2 CPU如何构成20位的物理地址? 1.分段结构 CS,SS,DS,ES CS 60000H 代码段 附加段 堆栈段 数据段
F8 F7 I T S Z
A
P
F0 C
进位标志 奇偶校验标志 辅助进位 全零标志 符号标志 陷阱标志 中断标志 方向标志 溢出标志
说明状态标志 ① S : Sign符号位,Alu运算结果最高位。 S=0, 结果为正 NS(汇编语言符号表示) S=1, 结果为负 S ② Z : Alu运算结果是否为零,适用于算术,逻辑运算 Z=‘0’,结果不为零 NZ Z=‘1’, 结果为零 Z ③ A : 辅助进位标志 Ac(Auxiliary Carry) A位反映Alu进行算术运算时,D3向D4是否有进位或 借位 A=0 无进位/借(加/减) A=1 有进位/借 A位通常供CPU内部调整用
READY TEST
BHE
NMI
M IO
ALE
CLK
DT R
MN MX
DEN
INTA
INTR
RESET
③CPU总线控制信号 HOLD HLDA
§4-3 8086存储器管理
一、8086存储器组织及其寻址 地址线 A19~A0 寻址范围 00000H~FFFFFH 220=1Mbyte D7 … D0 00000H 线性空间
字节编址: 将存储器空间按字节(byte)地址号顺序排列的 方式 实际操作时:一个变量可以是字节byte,一个字word,双字 double word,八字节,十六个字节
1.字节数据 数据为8位 字节地址为偶数 A0=0 奇数 A0=1 2.字数据 将连续存数的两个字节构成一个16位的字数据
低位字节 高位字节 N N+1
变址寄存器
2*16位 SI,DI 主要用于字符串操作 SI (source index) 源变址 R 用来存放源操作数的段内偏移量 DI (destination index) 目标变址R 用来存放目标操作数的段内偏移量 CPU的大部分操作也要使用 SP,BP,DI,SI 故此,也称它们为通用R。 BLU中:16位指针R IP(instruction pointer)指令指针 PC总是存放着 下一条要取出的指令在现行代码段内的偏移地址 (程序或用户不能直接访问) 四个16位段基址R CS,SS,DS,ES 分别存放当前代码段,堆栈段,数据段和附加段的 基地址(首地址) [*后面讲述8086存储器管理时再介绍]
物理地址:
20位的实际地址编码,称为内存单元的物理地址 (真实地址)
逻辑地址:
段地址:偏移地址 (7BC:FE36)
物理地址的形成: 物理地址=段地址×10H+偏移地址。 17BC 偏 移 地 址 17BC0H
(段首址)
16位段地址 0000 + 16位段地址 20位字节或字的物理地址
64K 279F6H 27BBFH
8086 最小方式系统的基本配置
时钟发生器 (8284A) CLK
RESET READY
MN / MX
+5v
ALE BHE AD −AD
S6~S3
5Biblioteka Baidu
19
地址 锁存器 STB
8282× 3
20
地址总线
16
AD − AD
0
OE
总线收 T 发器 OE 8286× 2 16
8086
DEN
DT R
数据总线
M IO
地址N+1
地址N
作为字地址
高字节
低字节
规则字 —— 一个字数据的字地址位于偶地址 即: 偶地址单元对应低位字节 奇地址单元对应高位字节 0065CH AB 0065DH 67 67 AB 0065CH
非规则字—— 若字地址是奇地址 即:奇地址单元存放低位字节 偶地址单元存放高位字节 0065FH AB 00660H 67
标志R
执行单元(EU)
总线接口单元BIU)
BIU:负责与M接口,即8086 CPU与M之间的数据传送 都是由BIU负责的,BIU负责从内存的指令单元 取出指令,送到指令流队列排队,在执行指令 是所需的操作数,也由BIU从内存的指定区域 取出,传送给EU去执行。 EU:负责指令执行,从指令流中取指令,分析指令 和执行指令。
3.寄存器阵列(Register Rank) 通用R 4*16位 8*8位 AX AH AL BX BH BL CX CH CL DX DH DL 用于存放操作数和运算结果 在某些指令中,四个R有隐含的专门用法 AX——累加器 , BX——基址寄存器 CX——计数器 , DX——数据R 指针寄存器 2*16位 SP,BP 用来存放相应的段内偏移地址 SP——(stack pointer) 堆栈指针 用来存放现行堆栈内段的段内偏移量 BP—— (base pointer) 基址指针 用来存放现行堆栈段内某个数据区的基地址偏移量。
二.8086基本结构
AH AL BH BL CH CL 通用 DH DL SP 寄存器 BP DI SI
AX BX CX DX
20位 Σ CS DS SS ES IP 内部 暂存器 地址加法器 16位 段寄存器 输入 输出 控制 电路
16位 运算R 执行部分 控制电路
ALU
1 2 3 4 5 6 指令队列缓冲器
• 指令的流水线结构: 8085 Z80等8位微机的指令执行顺序 取指 执行 取指 执行 取指 执行 时间 8086指令的执行顺序 BIU 取指 取指 取指 取指 得到数据 取指
EU 等待
执行
执行
执行
执行
特点:①减少了CPU,为取指令所需要的等待时间,提高了 CPU的利用率及运行速度。 ②取指和执行可以重叠,降低了对与CPU相配的M的存 储器的存取速度的要求。
① 8086-CPU构成:EU,BIU ② 分段存储概念 ③ 三总线外特性
§4-1 Intel 8086/8088-CPU结构
一.8086/8088-CPU的性能 8086 典型的16位CPU 16位内部数据总线,16位外部数据总线 8088 准十六位CPU 16位内部数据总线,8位外部数据总线 20位地址总线,可寻址地址空间(M)1Mbyte 220=1KK 低16位地址总线,寻址I/O端(间接寻址) 低8位地址总线,寻址I/O端口(直接寻址) 28=256 byte
67
AB
0065FH
3、字节和字的存取 奇地址高位字节的512K*8 :奇地址库 由 BHE 信号选通(bus high enable) BHE ——高8位数据总线允许 D15~D8 偶地址 低位字节的512K×8 :偶地址库 由A0 信号选通 D7~D0 *P15 f5.6 表示了CPU对字节和字的存取情况以及 P114,Tab.5.6 其中和A0信号,都是由字操作指令给出的 同学自行分析掌握 *
WR
RD
HOLD
HLDA
控制总线
INTR INTA
二、引脚信号功能 1、AD15 ~AD0 地址/数据复用(双向输出,三态) 采用分时办法传送地址或数据的复用引脚。若把完成依次 输入/输出操作称为总线周期T1~T3 T1:当ALE有效时,AD15 ~AD0锁存到8282中,用来输出要访问 的存储单元或I/O端口的低16位地址。 T2~T3: ALE无效, 读周期 显高阻 AD15 ~ 0 写周期 输出数据 AD15~~0 参阅P34,P35,P123,P124 8282和8286的工作原理 2、A19/S6~A16/S3 地址/状态复位引脚 (三态,输出) 在总线周期的T1,用来输出A13~A16 在其它时钟周期,用来输出状态信 S6=0时,指示8086正与总线相连