630 likes | 787 Views
第 2 章 8086 微处理器. 重点 8086 的结构特点、编程结构、引脚信号功能及总线时序。 2.1 8086 微处理器的结构 16 位,约 29000 个晶体管,频率有 5 、 8 、 10MHz 。 2.1.1 执行部件 EU 和总线接口部件 BIU 执行一条指令的过程 ……. 1 、总线接口部件 BIU 负责 CPU 与存储器、 I/O 端口传送数据。 组成: 16 位段寄存器( CS 、 DS 、 SS 、 ES ) 16 位指令指针( IP ) 6 个字节指令队列 地址形成逻辑( 20 位地址加法器)
E N D
第2章 8086微处理器 • 重点8086的结构特点、编程结构、引脚信号功能及总线时序。 • 2.1 8086 微处理器的结构 • 16位,约29000个晶体管,频率有5、8、10MHz。 • 2.1.1 执行部件EU和总线接口部件BIU • 执行一条指令的过程……
1、总线接口部件BIU • 负责CPU与存储器、I/O端口传送数据。 • 组成:16位段寄存器(CS、DS、SS、ES) • 16位指令指针(IP) • 6个字节指令队列 • 地址形成逻辑(20位地址加法器) • (I/O)总线控制逻辑 • 功能: • 1)在EU执行指令的过程中,BIU始终能从存储器中预先取出一些指令送到指令队列中排队,遵从先进先出的次序。
2)根据EU的请求,形成20位的内存物理地址,完成CPU与存储器或I/O设备之间的数据传送。2)根据EU的请求,形成20位的内存物理地址,完成CPU与存储器或I/O设备之间的数据传送。 • 2、执行部件EU • 负责指令的译码执行。 • 组成:16位的算术/逻辑单元ALU • 16位状态标志寄存器 • 4个通用寄存器(AX、BX、CX、DX) • AH和AL • 4个专用寄存器(SP、BP、DI、SI) • 暂存(运算)寄存器 • EU控制系统
注: • 1)寄存器组和数据传输通路间可进行快速传输。 • 2)EU不与系统总线相联。 • 功能: • 1)从BIU的指令队列中获取指令、译码执行指令。 • 2)向BIU发出请求,提供数据和所需访问的内存或I/O端口的地址信息。 • 3)对通用寄存器和标志寄存器进行管理, • 主要操作类型: • 1)算术/逻辑运算、串处理、BCD码调整。 • 2)计算寻址要求的单元地址的位移量,EU将这个16位位移量送BIU。
二、工作方式 • 微处理器通过总线和外部部件交换信息,当执行一条指令时,一般要占用二次总线,总线非常忙,要提高微处理器的利用率和整个系统的执行速度,必须充分利用总线。并行工作方式:BIU和EU处于并行工作状态,取指令与数据不占用额外时间,在执行指令时同时取下一条指令与数据,这样总线总不空闲。
2.1.2 8086的编程结构 • 基本结构寄存器 • 系统级寄存器(主要用于简化设计) • 调试和测试寄存器(主要用于对操作系 统进行调试) • 浮点寄存器(80486用)
基本结构寄存器 • 通用寄存器 • 专用寄存器 • 段寄存器
1.通用寄存器(8个) • AX 累加器(AH AL) 加减法,与外设传送信息 • BX 基址寄存器 表起始地址,计算M地址 • CX 计数寄存器 串个数,循环次数 • DX 数据寄存器 与AX构成双字长数 • SP 堆栈指针 栈顶偏移量 • BP 基址指针 堆栈中数据区的基址偏移量 • SI 源变址寄存器 串操作时,当前数据段、 • DI 目的变址寄存器 附加段中数据的偏移量
2.专用寄存器 • 1、指令指针IP • 指出下一条要执行的指令在当前代码段中偏移量 • BIU从内存中取出一个字节后,IP自动加1 • 能对IP操作的只有转移指令、返回指令和中断处理
专用寄存器 • 2、标志寄存器 有三种 • 状态标志 由EU设置 • 控制标志 可由指令设置 • 系统方式标志
状态标志 • 进位标志CF=1 表示高位有进位或借位 • CF=0 表示高位无进位或借位 • 奇偶标志PF=1 低8位中1的个数为偶数 • PF=0 低8位中1的个数为奇数 • 辅助进位标志AF=1 D3位有进位或借位 • AF=0 D3位无进位或借位 • 零标志ZF=1 表示运算结果为0 • ZF=0 表示运算结果非0
状态标志 • 符号标志SF=1表示运算结果为负数 • SF=0表示运算结果为正数 • 溢出标志OF=1运算结果超出机器所能表示的数值范围 • OF=0运算结果无溢出 • 注意:溢出和进位不同 • 例:指出运算5439+456A后的状态标志
控制标志 • 陷阱标志TF=1微处理器处于单步工作方式 • TF=0微处理器执行正常程序 • 中断允许标志IF=1 开中断 • IF=0 关中断 • 方向标志DF=1地址递减 • DF=0地址递增(用于字串操作)
3.段寄存器(6个) • 保存标志现行可寻址存储器段的段选择子值 • 只有16位 • 段长度与工作方式有关: 1)实地址方式:64KB 保存段的起始地址 物理地址=CS*16+IP 2)保护方式: 1~4GB 保存段的选择子 • 段寄存器与段描述子寄存器一一对应 段描述子:段基地址+段限+属性
段寄存器 • 段描述子寄存器--段高速缓存器(CACHE) • CS 当前代码段 (指令) • DS 当前数据段 (字符、数值) • SS 当前堆栈段 (保存返回地址和中间结果) • ES 当前附加段 (字符、数值) • FS 当前附加段 (用于数据通信) • GS 当前附加段 (用于数据通信)
取操作数的段: 1)默认的段; 2)在指令前加前缀指令指定,但偏移量由SP计算来的,用当前堆栈段,串操作目标操作数用当前附加段
2.1.3 8086系统中的存储器组织 • 1.存储器组织 • 1)存储器分段 地址只能为16位,所以1MB空间分成存储段。每段长度可达64KB,第一字节位置称”段起始地址“(段基址),必须能被16整除,高16位为”段基值“。段基值左移4位即成段起始地址。浮动装配时,只需确定段基址即可,程序中采用相对转移或相对调用。当程序超过64KB,则必须给段寄存器重新送新值。 几个段可互相重叠,也可指向同一个64KB,可进行程序压缩,但要求不破坏数据。
2)物理地址的产生 • 物理地址:单元地址用20位二进制数表示,CPU与存储器间数据交换用,唯一的。范围:00000H~FFFFFH • 逻辑地址:由段基值和段内偏移量构成,以16位二进制数表示,编程时用,不唯一。偏移量范围:0000H~FFFFH • 例:01245H单元 • 当段基值为 0123H 偏移量为15H • 当段基值为 0124H 偏移量为5H • 即一个物理地址可由不同的段基值和段内偏移量构成。
物理地址的产生 • 物理地址=段基址+段内偏移量(有效地址EA) • 偏移量寄存器:SP、BP、SI、DI、IP。 BIU根据执行操作的种类和要取的数据类型分别从不同寄存器中取值。 指令 CS IP 堆栈操作 SS SP或BP 操作数(变量) DS BX、SI或DI(若段操作前缀 • 指令指定可用CS、ES、SS) • 串操作目的操作数 ES DI • 逻辑地址来源见表2-20
2.2 8086微处理器的引脚功能 • 8086是16位CPU,40引脚,双列直插式
2.2.1 引脚功能说明 • 分四部分: 地址总线 数据总线 控制和状态总线 其他(电源和定时线) • 说明:1)某些引脚能传送多于一种类型的信 • 息,叫分时复用 • 2) MN/MX(最小/最大方式控制线) • +5V 最小方式,接地 最大方式 图2-6中括号内为最大方式
1、地址和数据总线 (1)地址总线 20位 单向三态 CPUM和I/O端口 数据总线 16位 双向三态 CPUM和I/O端口 为节省管脚,采用多路转换方法,即分时复用技术. (2)AD15~AD0: T1时,作低16位地址;其余时间,为数据线;中断响应或DMA方式时,高阻。AD0作低8位数据的选通信号。
地址和数据线 • A19~A16/S6~S3: T1时,M操作作高4位地址,可寻址1M字节单元;I/O操作为低电平,可寻址64K端口 • 其余时间,提供状态信息 • S4,S3表示正在使用哪个段寄存器,见表2-4 • S5反映IF的值 • S6=0,8086正在控制总线
地址和数据线 • BHE-/S7: • T1时作总线高半部分允许信号,BHE-=0,8位数据与AD15~AD8连通,与AD0配合决定是高字节还是低字节 • 其余时间提供状态信息,暂不用 • 在DMA方式时,高阻
2、控制和状态总线 • 有些输出,有些输入;还受MN/MX上电平的影响,以控制最小方式和最大方式。 • 最小方式用于单处理机系统 • 最大方式用于多处理机和协处理机结构
MN/MX=0 最大方式: S2-,S1-,S0-总线周期状态信号(输出,三态,低电平有效):表示8086外部总线周期的操作类型,送到总线控制器8288,由8288产生相应的控制信号。表2-5(P22) MN/MX=+5V 最小方式: M/IO-存储器/IO控制信号(输出,三态) M/IO-=1,访问存储器M/IO-=0,访问I/O设备 DT/R-数据发送/接收信号(输出,三态):控制8286的数据传送方向 受MN/MX影响的信号线
S2-区分M和I/O的标志 S1-指示操作是输入还是输出 在T3或TW返回无效状态 DT/R-=1,数据放到系统总线 DT/R-=0,从系统总线上取进数据 DEN-数据允许信号(输出,三态,低电平有效):控制8286收发器,允许缓冲器(数据总线)连到系统总线或局部总线上。 这3个在DMA方式高阻 最大方式 最小方式
RQ/GT0-、RQ/GT1-总线请求/允许访问控制(双向):时序分为3个阶段(请求、允许、释放)需要3个低电平脉冲序列。当总线主模块要求总线控制权发RQ-=0;若8086允许响应发GT-=0;交出总线控制权,成三态输出;总线主模块使用完,交出总线控制权发RQ-=0。见图2-7.RQ/GT0-、RQ/GT1-总线请求/允许访问控制(双向):时序分为3个阶段(请求、允许、释放)需要3个低电平脉冲序列。当总线主模块要求总线控制权发RQ-=0;若8086允许响应发GT-=0;交出总线控制权,成三态输出;总线主模块使用完,交出总线控制权发RQ-=0。见图2-7. HOLD保持请求(输入):8086在机器周期的最后一个T采样HOLD=1总线主模块向8086请求总线控制权。 HLDA保持响应(输出):8086响应,使系统总线高阻。 这时,DEN-、DT/R-等高阻。 最大方式 最小方式
在T4或下一个T1里 两条控制线同时接两个协处理器 RQ/GT0-优先权高 QS0、QS1指令队列状态(输出):见表2-6 此方式的ALE、DEN、DT/R、INTA的功能由8288提供。 ALE地址锁存允许(输出):=1,表示有效地址在总线上,下降沿锁存地址信息。 INTA-中断响应(输出,三态):=0,表示8086正执行中断响应。 最大方式 最小方式
LOCK-总线优先权锁定信号(输出,三态):=0,阻止8086失掉总线控制权;在DMA方式高阻。LOCK-总线优先权锁定信号(输出,三态):=0,阻止8086失掉总线控制权;在DMA方式高阻。 指令LOCK由程序设置,做前缀,并保持到该条指令执行结束。 WR-写控制(输出,三态):数据在总线上稳定时,=0,执行写操作;在DMA方式高阻 最大方式 最小方式
不受MN/MX影响的信号线 • RD-读控制(输出,三态): T2~T3、TW时,=0,8086从M或IO设备读数据;在DMA方式高阻 • READY等待状态控制(输入): =1,表示被选中的M或IO准备就绪; =0,使8086处于等待状态(插入1或几个TW) • TEST-等待测试控制(输入): =1,8086等待,停止操作; =0,脱离WAIT指令的等待状态,继续执行指令。 (CPU每5T采样TEST-)
不受MN/MX影响的信号线 • INTR可屏蔽中断请求(输入):=1且IF=1,8086执行中断响应; 其它,继续执行指令。 (CPU在指令周期的最后一个T采样INTR) • NMI不可屏蔽中断请求(输入):上升沿触发,8086执行不可屏蔽中断服务程序,不能被软件禁止。 • RESET系统复位(输入):=1(刚加电要大于4T),8086停止正在运行的操作,做初始化:A、FR=0000H,为禁止中断和单步方式; B、DS、SS、ES和IP=0000H,CS=FFFFH; C、指令队列复位。 然后从FFFF0H开始执行,无条件转移到系统初始化和引导及装配程序。
3、其他(电源和定时线) • CLK时钟信号(输入):同步所有8086的时钟信号,由8284时钟发生器输出 • Vcc电源(输入):+5V~10% • GND地线(输入):两条(1和20脚)
8086 AD15~AD0:16位复用 M/IO- BHE-/S7:与A0组合来区分高8位,低8位还是1个字。 8088(准16位处理器) AD7~AD0:8位复用;A15~A8单用 IO/M- SS0:最小方式下等效于8086的DEN-(或最大方式下的S0),与DT/R-、IO/M-组合确定当前的总线周期,见表2-7。最大方式下为高电平。 2.2.2 8086与8088引脚的区别
8086微处理器的系统配置 • 一、8086基本系统概念 8086只有40引脚,所以采用以下系统结构: 1)地址线和数据线采用分时复用; 2)地址锁存器(74LS373、273或INTEL 8282/8283)记录地址,防止丢失 。 8086把地址送上总线时,使ALE=1。 20位地址加BHE-用3片。8086的ALE接74LS的G(或8282的STB);当OE-=0时送出数据; 3)数据总线收发器(74LS245或8286/8287)提供缓冲和驱动,并控制数据传送和接收的方向。2片,最小系统可不用,8088用1片。
8086基本系统概念 • 8086的DT/R-接74LS245的DIR(或8286的T,=1输入;=0输出);8086的DEN-接74LS245的G-(或8286的OE-)。T2后开始工作。 4)时钟信号发生器(8284A):产生时钟脉冲频率是振荡源频率的1/3。提供: CLK, 接8086CPU的CLK; PCLK外部设备时钟,频率是CLK频率的1/2;READY等待状态请求,要求同步增加TW周期;RESET复位,和8086的RESET同步。
8086基本系统概念 • 5)复位:当8086接受复位时,有关寄存器初始化,多路转换总线信号线浮空,其它可浮空的进入三态或不作用状态。
二、最小方式 • MN/MX=+5V,构成单处理机系统,系统配置图如图9-1。状态译码和命令输出: • M/IO- RD- WR- 总线周期(命令) • 0 0 1 I/O读(IOR) • 0 1 0 I/O写(IOW) • 1 0 1 M读(MRD) • 1 1 0 M写(MWT)
三、最大方式 • MN/MX=0,构成多处理机和协处理机系统,系统配置图如图9-3,比最小方式系统增加一个转换控制信号的8288总线控制器(图9-4)和中断优先权管理器8259A。 • 1、总线控制器8288 (1)状态译码和命令输出: 见表9-1 (2)控制逻辑 1)IOB(输入输出总线方式): IOB=0,8288处于系统总线方式,总线仲裁逻辑发AEN=0,表示总线可供使用。用于多处理器共用一组总线系统。
最大方式 • IOB=1,8288处于I/O总线方式工作,与AEN-状态无关。此时,对M访问的命令无效。允许8288管理两组外部总线:访问I/O总线无需等待;访问M之前需AEN-=0。用于多处理器系统而外设不共享的系统。 2)AEN-(地址使能): =1,8288各种命令无效,高阻。 =0,对系统总线方式,在115ns后8288才输出命令,在这段时间进行总线切换;对I/O总线方式,不起作用,不影响I/O命令的发出。
最大方式 • 3)CEN命令使能: =1,命令有效; =0,各命令和DEN、PDEN-等输出无效。 4)CLK时钟:同步8288产生命令和控制信号。(3)控制信号发生器 提供ALE、DEN、DT/R-(作用同最小方式,但DEN相位相反)和MCE/PDEN-。 MCE/PDEN-主设备使能/外设数据允许: 当IOB=0,为MCE(输出,高电平有效),接8259A,允许设备级联,MCE锁存级联地址;无8259,浮空。而用DEN控制总线收发器使局部数据总线接通系统数据总线。
最大方式 • 当IOB=1,为PDEN -(输出,低电平有效),作用同DEN,做总线收发器的开启信号,用于多总线结构的多处理机系统。 • CEN、AEN-、IOB供多处理机系统用。 2、其他信号 RQ/GT0-同8087(协处理器)连; RQ/GT1-同8089(I/O处理器即双通道处理器)连。 INTA-: • 当系统是两个以上主CPU的多处理器系统,要接到总线仲裁器8289,再与DEN与非后接74LS245的G-(或8286的OE-)。
2.3 8086微处理器的基本时序 • 2.3.1 指令周期、总线周期和时钟周期 指令周期:执行一条指令所需时间 总线周期:取指令和数据传送,由CPU的BIU执行所需时间 时钟周期:同步所有操作的时钟脉冲周期 时钟周期=1/主频 • 一个指令周期由一个或几个总线周期组成 • 基本总线周期由4个时钟周期组成,分别叫T1、T2、T3、T4状态。
指令周期、总线周期和时钟周期 • 若外设或存储器速度较慢,在T3之前发出“数据未准备就绪”信号(READY=0),CPU在T3下降沿采样READY,若READY =0则在T3之后插入1个或多个Tw,在Tw下降沿,采样READY,当READY =1,则结束Tw进入T4。Tw和T3总线控制信号一样。 • 若一个总线周期后不执行下一个总线周期,执行空闲周期Ti。EU仍执行,BIU等待,此时,AB线高4位 仍驱动状态信息; 低16位 在写周期,驱动数据信息;在读周期,高阻。
2.3.2几种基本时序的分析 • 8086CPU的操作:内操作,与用户无关;外操作,系统对CPU控制或CPU对系统的控制。