8086总线周期时钟周期

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于任何一个物理地址,可以惟一地被包含在一 个逻辑段中,也可 包含在多个相互重 叠的逻辑段中,只 要有段地址和段内 偏移地址就可以访 问到这个物理地址 所对应的存储空间。
21
2345H:0000H 01H : :
2345H:1100H 78H
例如:2345H:1100H表示段地址为2345H(段 的起始地址是23450H),段内偏移地址为1100H的存 储单元地址。在8086CPU中有专用的寄存器存放段地 址和偏移地址。
地址指针自动增量;DF=1,表示地址指针自动减量。DF 可通过STD指令置位,也可通过CLD指令复位。
● IF(Interrupt Flag) 中断允许标志位 ----- 用于控制CPU是否允许响应可屏蔽中断请求。 IF=1,表示允许CPU响应可屏蔽中断请求。 IF=0, 表示禁止CPU响应可屏蔽中断请求。 IF可通过STI指令置 位(置1),也可通过CLI指令复位(清零)。
-----反映运算结果中“1”的个数的奇偶性,主要用于判 断数据传送过程中是否出错。
PF=1,表示本次运算结果的低八位中有偶数个“1” PF=0,表示本次运算结果的低八位中有奇数个“1”
● AF(Auxiliary Carry Flag) 辅助进位标志
-----加减运算时,若D3向D4产生了进位或借位则AF=1。 否则AF=0。在BCD码运算时,该标识用于十进制调整。
35
T1状态:CPU向多路复用总线上发送地址信息(A19~A0)指 出要寻址的内存单元地址或I/O端口地址。这期间 CPU还要送出地址锁存信号ALE(正向脉冲),在 ALE的下降沿将内存单元地址或I/O端口地址存入地 址锁存器。
物理地址:访问存储器的实际地址,用20位二进制表示。 物理地址=段寄存器的内容×16 (即左移4位)+ 偏移地址
28
偏移地址(16位) 段寄存器(16位) 0000
Σ
地址加法器
物理地址(20位)
29
例: 逻辑地址2345H:1100H对应的物理地址是24550H。
23450H+1100H =24550H。 反之,物理地址24550H,它对应的逻辑地址可以是 2455H:0000H,也可以是2400H:0550H等。
5
(1)内部寄存器组
8个16位 通用数据寄存器(AX,BX,CX,DX) 内部寄存器
指针和变址寄存器(SP,BP, SI,DI )
① 通用数据寄存器: 可用作16位的寄存器,也可用
作8位寄存器,即:
AX AH,AL
BX BH,BL
CX
CH,CL
DX DH,DL
6
AX:累加器。有些指令约定以AX(或AL)为源或目的 寄存器。
22
段可分为代码段,数据段,附加段,堆栈段。 用于存放段基址有 4个16位段寄存器,代码段寄存器 CS,数据段寄存器DS,附加段寄存器ES和堆栈段寄 存器SS。 代码段:存放程序代码。 数据段:用于存放当前使用的数据。需要第二个数 据段时可以使用附加段。
23
堆栈段:是内存中的一块存储区,用来存放专用数据。 如调用子程序时的入口参数,返回地址等,这些数据 都按照“后进先出”的规则进行存取。SS存放堆栈段 的段基址,SP存放当前堆栈栈顶的偏移地址。数据进 出堆栈要使用专门的堆栈操作指令,SP的值在执行堆 栈操作指令时根据规则自动地进行修改。
8
(2)算术逻辑单元(ALU)及标志寄存器(FR)
① 算术逻辑运算单元ALU 可完成16位或8位的算术逻辑运算。 ALU运算后的结果特征(有无进位,溢出等)置
入标志寄存器中保存。 ② 标志寄存器FR
16位寄存器,用来存放运算结果的特征和控制标志。
9
分为两类: 条件标志——共6位,用于寄存程序运行的状态信息,
31
(4)指令队列缓冲器——6字节
BIU从存储器中读出指令送入6字节的指令队列。 一旦指令队列中空出2个字节,BIU将自动进行读指令 的操作以填满指令队列。遇到转移类指令,BIU将指令 队列中剩余的指令作废,重新从存储器新的地址单元 中取指令并送入指令队列。一般情况下应保证指令队 列中填满指令,使得EU可以不断地得到等待执行的指 令。
-----反映运算结果是否超出了带符号数的表数范围。 OF=1 表示运算结果超出了该字长所能表示的范围, 即产生溢出;否则OF=0。 机器判断是否溢出是根据根据最高位的进位与次高位 的进位是否相同来确定。若两者不相同则OF=1(表示有溢 出),否则 OF=0(表示无溢出)
13
控制标志
● DF(Direction Flag) 方向标志 ----- 用于串处理指令中控制串处理的方向。 在串操作指令中,若DF=0,表示串操作指令执行后
14
● TF(Trap Flag) 单步标志位 ----- 用于单步操作。 TF=1,控制CPU进入单步工作方式。在这种工作方 式下,CPU每执行完一条指令就会自动产生一次内部中断, 这在程序调试过程中很有用。
15
例1:若AL = 3BH,AH = 7DH,指出AL和AH中的内容相 加后,CF,AF,PF,SF,OF和ZF的状态。
遇到转移、调用及返回指令时,BIU就自动清除指令队列 中已有内容,从转移、调用或返回的新地址开始,重新从内存 中预读取指令并填充指令队列。
这两部分既非同步工作方式,也不完全无关,而是互相配 合工作的。
33
2.1.2 8086CPU的引脚及其功能
8086 CPU是十六位的微处理器,它向外的信号应包 含16条数据线,20条地址线,再加上其他一些必要的 控制信号。为了减少芯片引脚数量,对部分引脚采用 了分时复用的方式,构成40条引脚的双列直插式封装。 分时复用——就是在同一根传输线上,在不同时间传 送不同的信息。
● ZF(Zero Flag) 零标志
-----反映计算结果是否为0。若结果为零则ZF=1,否则 ZF=0。
12
● SF(Sign Flag) 符号标志位
-----反映计算结果最高位即符号位的状态。如果运算 结果的最高位为1则SF=1,否则SF=0。
● OF(Overflow Flag) 溢出标志位
注意:一个存储单元的物理地址是惟一的,而它对应 的逻辑地址是不惟一的。
30
(3)指令指针寄存器IP—— 16位
功能:用来存放将要执行的下一条指令在代码段中的 偏移地址。在程序运行过程中,BIU自动修改 IP中的内容,使它始终指向将要执行的下一条 指令。
注意:程序不能直接访问IP,但是可通过某些指令修 改IP的内容。例如, 执行转移指令时,会将转 移的目标地址送入IP中,以实现程序的转移。
2.1.1 8086的编程结构
从程序员的角度看,8086CPU分为两部分: 执行部件(EU) 总线接口部件(BIU)
3
地址总线(20 位)
通用寄存器
AX AH AL BX BH BL CX CH CL DX DH DL
BP SP
SI DI
地址加法器 ∑
数据总线
(16 位) CS DS SS ES IP 内部通信寄存器
这些标志往往用作后续指令判断的依据。 控制标志——共3位,用于控制机器或程序的某些运行
过程。
10
条件标志 ● CF(Carry Flag) 进位标志
-----反映在运行结果的最高位有无进位或借位。 CF=1,表示本次运算中最高位有进位(加法运算时) 或有借位(减法运算时);否则CF=0。
11
● PF(Parity Flag) 奇偶标志
① 解决了16位寄存器访问大于64KB内存 空间பைடு நூலகம்问题;
② 可以实现程序重定位,即一个不到 64KB大小的程序可通过改变段寄存器的内容 (一般由操作系统完成)放在1MB空间的任 意段位置,从而为运行多道程序提供方便。
27
(2)地址加法器
功能:用于产生20位的物理地址。即进行一次地 址加法,将段寄存器的内容左移4位与偏移地址相加 ,得到20位的物理地址,从而可寻址 1MB的存储空间。
第2章 8086微处理器及其系统
2.1 8086微处理器简介 2.2 8086系统的存储器组织及I/O组织 2.3 8086系统的工作模式 2.4 8086的操作时序
1
8086 CPU是Intel系列的16位微处理器, 它有16位数据总线和20位地址总线。 可寻址的地址空间是:220=1MB
2
2.1 8086微处理器简介
总线周期:CPU通过外部总线对存储器或I/O端口进 行一次读/写操作的过程称为总线周期。为完成对存储器或 I/O端口的一次访问,CPU需要先后发出存储器或I/O端口 地址,读或者写操作命令,进行数据的传输。以上的每一 个操作都需要延续一个或几个时钟周期。所以,一个总线 周期由若干个时钟周期(T)组成。
8086/8088依靠分时复用技术,用40个引脚实现了众 多数据、地址、控制信息的传送。
34
1、8086总线周期
时钟周期: CPU的一切操作都是在系统主时钟CLK 的控制下按节拍有序地进行的。系统主时钟一个周期信号 所持续的时间称为时钟周期(T),大小等于频率的倒数, 是CPU的基本时间计量单位。
BX:基址寄存器。可用作间接寻址的地址寄存器和基 地址寄存器。
CX:计数寄存器。在循环和串操作中充当计数器,指 令执行后CX内容自动修改。
DX:数据寄存器。在间接寻址的I/O指令中存放I/O端 口地址;在32位乘除法运算时,存放高16位数。
7
② 指针和变址寄存器 SP:堆栈指针寄存器 BP:基址指针寄存器 SI: 源变址寄存器 DI:目的变址寄存器
CF=0(无进位) AF = 1(有辅助进位) PF=1(运算结果有4个1) SF = 1(运算结果符号位为1) OF =1 (有溢出) ZF = 0 (运算结果不为0)
16
(3)内部控制逻辑电路 主要功能:从指令队列缓冲器中取出指令,对 指令 进行译码,并产生各种控制信号,控制 各部件的协同工作以完成指令的执行过 程。
18
(1)段地址寄存器(CS, DS, SS, ES) 存储器的分段 8086可寻址的存储空间为1MB,有20位的地址线,
而内部的寄存器是16位,只能寻址64KB。所以8086系 统采用了地址分段的方法,将1M存储空间分成若干块, 称为“逻辑段”,存放一种类型的数据或者程序。因此 1M的存储空间可分成16个逻辑段(0~15)。在段内寻址 仍采用传统的16位地址寻址方法。
编程时,程序和各种不同类型的数据分别存放在 不同的逻辑段中。
24
25
[例]:
已知CS=1055H,
DS=250AH,
10550H
ES=2EF0H,
SS=8FF0H,
250A0H
画出各段在内存中的分 2EF00H 布,写出段首地址。
8FF00H
代码段 数据段 附加段 堆栈段
26
采用段地址的好处:
(5)总线控制逻辑
32
3. 总线接口部件和执行部件的管理
当8086指令队列中有2字节空闲时,总线接口部件就自动 将指令从内存中预取到指令队列缓冲器中。
每当EU部件要执行一条指令时,它就从指令队列头部取 出指令,后续指令自动向前推进。EU在执行指令中若需要访问 内存或I/O设备,EU就向BIU申请总线周期,若BIU总线空闲, 则立即响应,若BIU正在取一条指令,则待取指令操作完成后 再响应EU的总线请求。
ALU 数据总线(16 位) 暂存器
总线 8086 总线 控制 逻辑
ALU 标志寄存器
EE控UU 制 控系制器 统
队列 指令队列 总线
123456 (8 位)
指令执行部件(EU)
总线接口部件(BIU)
图2-1
4
1. 执行部件(EU)
功能:执行指令 组成:● 内部寄存器组;
● 算术逻辑运算单元ALU及标志寄存器; ● 内部控制逻辑电路。
17
2. 总线接口部件 BIU 负责CPU与存储器、I/O设备之间传送数据、地址、 状态及控制信息。 组成:
● 4个段地址寄存器(CS、DS、ES、SS) ● 16位的指令指针寄存器IP(Instruction Pointer) ● 20位的地址加法器 ● 6字节的指令队列缓冲器 ● 总线控制逻辑
19
在8086存储空间中,把16字节的存储空间称作一内存节 (paragraph)。要求各个逻辑段从节的整数边界开始,即段 首地址低4位应该是“0”,把段首地址的高16位存放在段寄 存器DS或CS或SS或ES中。
00000H 00010H 00020H …… FFFF0H
20
允许段在整个存储空间浮动,即段与段之间可以 部分重叠、完全重叠、连续排列。在整个存储空间中 可设置若干个逻辑段。
相关文档
最新文档