Presentation is loading. Please wait.

Presentation is loading. Please wait.

汇编语言与接口技术 教师:范新民.

Similar presentations


Presentation on theme: "汇编语言与接口技术 教师:范新民."— Presentation transcript:

1 汇编语言与接口技术 教师:范新民

2 第二章 8086微处理器

3 第二章:8086微处理器 教学提示: 80X86系列微处理器是PC系列机中处理器的主流产品,16位微处理器8086是80X86微处理器各代表芯片中实现处理器运控功能的基本部件。掌握8086微处理器的软/硬件是了解80X86微处理器芯片的基础。

4 主要内容: 第二章:8086微处理器 8086 微处理器的结构特点 8086 微处理器的编程结构 8086 微处理器的引脚功能
8086 微处理器的基本时序

5 第二章:8086微处理器 微处理器的结构 8086 微处理器的基本结构 8086 微处理器的编程结构

6 8086 CPU内部结构 微处理器的基本结构 16位微处理器,采用40条引脚的DIP封装,时钟频率有三种:5MHZ、8MHZ、10MHZ。 分两部分: 总线接口单元 BIU(Bus Interface Unit) 执行部件 EU (Execution Unit)

7 8086 CPU内部结构图 AX BX CX DX

8 4个段地址寄存器(CS、DS、ES、SS) 16位指令指针寄存器IP
8086 CPU内部结构 1、总线接口部件BIU 总线接口部件BIU同外部总线连接,为执行部件EU完成全部的总线操作,并且计算、形成20位的内存储器的物理地址。 组成: 4个段地址寄存器(CS、DS、ES、SS) 16位指令指针寄存器IP

9 8086 CPU内部结构 20位的地址加法器 (16段地址+偏移地址=物理地址) 6字节(8086)或4字节(8088)的指令队列 总线控制电路: 处理器与外界总线联系的转接电路。 包括三组总线: 20位地址总线,16位(8086)或8位(8088)双向数据总线,一组控制总线。

10 8086 CPU内部结构 2、执行部件EU(Execution Unit) 从BIU的指令队列缓冲器中取指令、分析指令(指令译码),然后根据译码结果向EU内部各部件发出控制命令以完成指令的功能。 组成: 4个通用寄存器:AX、BX、CX、DX 4个专用寄存器:BP、SP、SI、DI, 标志寄存器(PSW): 9个标志位,其中6个条件标志位用于存放结果状态。

11 8086 CPU内部结构 算术逻辑单元: 16位加法器,用于对寄存器和指令操作数进行算术或逻辑运算。 EU控制系统: 接受从总线接口单元的指令队列中取来的指令代码,对其译码和向EU内各有关部分发出时序命令信号,协调执行指令规定的操作。

12 8086 CPU内部结构 由于EU和BIU这两个功能部件能相互独立地工作,在大多数情况下,取指令所需的时间“消失”了(隐含在上一指令的执行之中),大大减少等待取指令所需的时间,提高了微处理器的利用率和整个系统的执行速度。 BIU和EU分开,取指和执行可以重迭,大大减少了等待取指所需的时间,提高CPU的利用率。

13 8086 CPU内部结构 3、8086与8080的比较

14 2.1.2 8086 CPU 的编程结构 第二章:8086微处理器 通用寄存器 指令指针IP和标志寄存器FR 段寄存器
8086系统中内存分段

15 8086 CPU 的编程结构 8086的寄存器结构

16 1、通用寄存器 8086 CPU 的编程结构 (1)数据寄存器 累加器AX(Accumulator) 基址寄存器BX(Base)
算术运算的主要寄存器 (1)数据寄存器 累加器AX(Accumulator) 基址寄存器BX(Base) 计数寄存器CX(Count) 数据寄存器DX(Data) 这四个16位寄存器可分为 高8位(AH、BH、CH和DH)与低8位(AL、BL、CL和DL)可分别寻址、独立操作。 计算内存储器地址时,经常用来存放基址 循环LOOP指令和串处理指令中用作隐含计数器 双字长乘除法运算; I/O的端口地址寄存器

17 通用寄存器 (2)指针寄存器和变址寄存器 堆栈指针寄存器SP(Stack Pointer) 基址指针寄存器BP(Base Pointer) 源变址寄存器SI(Source Index) 目的变址寄存器DI(Destination Index) SP用来确定欲读写堆栈的地址,BP用来存放在现行堆栈段的一个数据区的“基地址”。SI、DI用于变址操作,存放变址地址。

18 2、指令指针寄存器IP(Instruction Pointer)
8086 CPU 的编程结构 2、指令指针寄存器IP(Instruction Pointer) 指向当前需要取出的指令字节 IP指向的是指令地址的段内地址偏移量,又称偏移地址(Offset Address)或有效地址EA (Effective Address)。 程序员不能对IP进行存取操作,程序中的转移指令、返回指令以及中断处理能对IP进行操作。

19 3、 标志寄存器FR(Flag Register)
指令指针IP和标志寄存器FR 3、 标志寄存器FR(Flag Register) OF DF IF TF SF ZF AF PF CF 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Overflow:溢出 Direction:方向 Interrupt enable:中断允许 Trap:单步 进位:Carry 奇偶:Parity 半进位: Auxiliary Carry 全零: Zero 符号标志:Sign

20 指令指针IP和标志寄存器FR 6个状态位如下: 进位标志CF:当加法运算有进位,减法运算有借位时,CF=1,否则CF=0。 辅助进位标志AF:在算术运算操作时,低4位向高4位有进位(加法)或有借位(减法);则AF=1,否则AF=0。 奇偶校验标志PF:当运算结果低8位“1”的个数为偶数时,PF=1,否则PF=0。主要用于检查数据传送过程中的错误。

21 指令指针IP和标志寄存器FR 零标志ZF: 当运算结果为0时,ZF=1,否则ZF=0。 溢出标志OF:当运算结果超出补码表示的数值范围时,OF=1,否则OF=0。 符号标志SF:在进行符号数的运算时,当运算结果为负时,SF=1,否则SF=0。

22 指令指针IP和标志寄存器FR 3个控制标志位用来控制CPU的操作: 方向标志DF:控制串操作指令对字符串处理的方向。 置DF=0时,由低地址向高地址进行串操作,变址寄存器SI和DI自动增量操作。 置DF=1时,在串操作中,变址寄存器SI和DI自动减量操作。 中断允许标志IF: 置IF=0时,禁止CPU响应可屏蔽中断; 置IF=1时,允许CPU响应可屏蔽中断;

23 指令指针IP和标志寄存器FR 单步陷阱标志TF(Trap Flag): 置TF=1时: 置CPU进入单步工作方式,即CPU每执行完一条指令就产生一个内部中断(单步中断),以便对每条指令执行的结果作跟踪检查; 置TF=0时: 置CPU正常执行程序。

24 指令指针IP和标志寄存器FR 标志: 例1:执行两个数的加法,分析对标志位的影响。 运算结果最高位为0 ∴ SF=0
运算结果≠0 ∴ ZF=0 低8位中1的个数为奇数个 ∴ PF=0 最高位没有进位 ∴ CF=0 第三位向第四位无进位 ∴ AF=0 次高位向最高位没有进位,最高位向前没有进位, ∴OF=0

25 指令指针IP和标志寄存器FR 例2:执行AL和AH两个数相减的运算,分析对标志位的影响。若AL=3BH,AH=7DH 运算后: CF=1 (有借位) AF=1 (有辅助借位) SF=1 (符号位为1) PF=1 (运算结果中有6个1) OF=0 (无溢出) ZF=0 (运算结果不为0)

26 4、段寄存器(Segment Register)
8086 CPU 的编程结构 4、段寄存器(Segment Register) 内存中通常存放着三类信息: 代码(指令)—指示微处理器执行何种操作; 数据(字符、数值)—程序处理的对象; 堆栈信息—被保存的返回地址和中间结果等。 8086CPU内部有4个段寄存器: CS、DS、SS、ES

27 段寄存器(Segment Register)
段的起始地址由称为“段寄存器”的4个16位寄存器决定。 4个段寄存器为: 代码段寄存器CS(Code Segment) 指向当前的代码段,指令由此段中取出; 堆栈段寄存器SS(Stack Segment) 指向当前的堆栈段,堆栈操作的对象就是该段中存储单元的内容;

28 段寄存器(Segment Register)
数据段寄存器DS(Data Segment) 指向当前的数据段,通常用来存放程序变量(存储器操作数); 附加段寄存器ES(Extra Segment) 指向当前的附加段,通常也用来存放数据,以及一些专用指令的操作数。

29 8086CPU有20位地址线,可寻址的最大物理内存容量为1MB。地址范围为 00000H~FFFFFH。
系统中的存储器组织及物理地址的形成 8086CPU有20位地址线,可寻址的最大物理内存容量为1MB。地址范围为 00000H~FFFFFH。 每个存储单元存储一个字节的数据,两个相邻的字节定义为一个字。每一个字的低字节存放在低地址中,高字节存放在高地址中,并以低字节的地址作为字地址。 解决20位内存地址和16位地址计算能力的矛盾,8086程序把1M字节的存储空间看成为一组存储段,各段的功能由具体用途而定。

30 8086系统中内存分段 一个存储段是存储器的一个逻辑单位,其长度可达64K字节,每段第一个字节的位置称为“段起始地址” 。 对段起始地址的要求是: 最好能被16整除(起始地址为××××0H)。段寄存器中存放了与段起始地址有关的16位“段基值”(Segment Base value),几个段可以相互重叠,也可指向同一个64K字节空间。

31 8086系统中内存分段 有两种存储器地址: 逻辑地址(Logical Address) 允许在程序中编排的地址 由段基地址和段内偏移地址组成的地址 段基地址和段内偏移地址都是16位的无符号二进制数 表示方法: 段基地址 : 偏移地址

32 物理地址(Physical Address)
8086系统中内存分段 物理地址(Physical Address) 信息在存储器中实际存放的地址 存储器的20位的实际地址 PA=段基地址×16+ 地址偏移 物理地址与逻辑地址的区别: 物理地址是存储器的绝对地址(20位的实际地址),范围从00000H~FFFFFH , 是由CPU访问存储器时由地址总线发出的地址。逻辑地址是程序员在程序设计时使用。

33 8086系统中内存分段 逻辑地址与物理地址 物理地址的形成 段基址 20000H 25F60H 25F61H 25F62H 25F63H
...... 20000H 25F60H 25F61H 25F62H 25F63H 2000H 段基址 段内偏移地址 5F62H 物理地址的形成 逻辑地址与物理地址

34 8086系统中内存分段 8086系统中,对给定的任一存储单元而言有两部分逻辑地址: 段基值:决定所在段第一个字节的位置。“段基值”存放在段寄存器(CS、SS、DS、ES)中。 段内偏移量:该存储单元相对于该段起始单元的距离。 “段内偏移量”由SP、BP、SI、DI、IP、BX和直接地址以及上述寄存器和直接地址的组合而形成。

35 注:EA为有效地址,反映操作数的段内偏移地址。
逻辑地址的来源 8086系统中逻辑地址的来源可归纳如表所示: 操作类型 隐含的段基值 可替换的段基值 偏移地址 取指令 CS IP 堆栈指令 SS SP BP用作基地址寄存器 CS、DS、ES EA 通用数据读写 DS CS、ES、SS 字符串操作(源地址) SI 字符串操作(目的地址) ES DI 注:EA为有效地址,反映操作数的段内偏移地址。

36 逻辑地址的来源 段寄存器和其他寄存器组合指向存储单元示意图: 代码段 数据段 堆栈段 CS IP DS SI,DI或BX SS SP或BP

37 2.2 8086微处理器的引脚功能 第二章:8086微处理器 一、 最小模式下8086微处理器的引脚及功能
微处理器的引脚功能 一、 最小模式下8086微处理器的引脚及功能 二、 最大模式下8086微处理器的引脚功能

38 8086 CPU 引脚及功能 在计算机系统和计算机应用系统的分析和设计时,理解处理器芯片的引脚功能以及总线上有关信号的时间关系是十分重要的。 是输入信号还是输出信号 是高电平有效还是低电平有效 是二态信号还是三态信号 信号A/B的含义 多个信号用一个波形的表示方法

39 8086 CPU是十六位的微处理器,它的信号包含16条数据线,20条地址线,以及若干控制信号。
微处理器的引脚及功能 8086 CPU是十六位的微处理器,它的信号包含16条数据线,20条地址线,以及若干控制信号。 为了减少芯片引脚数量,部分引脚采用分时复用的方式,构成40条引脚的双列直插式封装。 8086CPU有两种不同的工作模式(最小模式和最大模式)。8条引脚(24~31)在两种工作模式中,具有不同的功能。

40 8086 CPU引脚及功能 8086微处理器的封装外形 括号内为最大模式时的引脚

41 8086 CPU引脚及功能 1、地址总线和数据总线 AD15~AD0(Address Data Bus) 分时复用的地址/数据线, 双向、三态。 A19/S6~A16/S3(Address/Status) 分时复用的地址/状态线。输出、三态。 用作地址线时,A19~A16与AD15~AD0一起构成访问存储器的20位物理地址。CPU访问I/O端口时,A19~A16保持为“0”。

42 用作状态线时,S6恒为低电平,S5表示IF位的当前值,S4、S3用来表示当前正在使用的段寄存器:
8086 CPU 引脚及功能 用作状态线时,S6恒为低电平,S5表示IF位的当前值,S4、S3用来表示当前正在使用的段寄存器: S4 S3 含 义 当前正在使用ES 1 当前正在使用SS 当前正在使用CS或未用任何段寄存器 当前正在使用DS

43 读写控制信号用来控制CPU对存储器和IO设备的读写过程: 数据传输方向(读/写); 传输种类(存储器还是IO设备);
2、读写控制信号引脚 读写控制信号用来控制CPU对存储器和IO设备的读写过程: 数据传输方向(读/写); 传输种类(存储器还是IO设备); 读写方式(奇地址字节/偶地址字节/字); 存储器/IO设备是否准备好的状态信号; 分时总线上信号的类型等。

44 M/ (Memory/IO)存储器或I/O端口访问选择信号,三态输出。
8086 CPU 引脚及功能 M/ (Memory/IO)存储器或I/O端口访问选择信号,三态输出。 (Read)读信号。三态输出,低电平有效,表示当前CPU正在读存储器或I/O端口。 (Write)写信号。三态输出,低电平有效,表示当前CPU正在写存储器或I/O端口。 READY 准备就绪信号。由外部输入,高电平有效,表示CPU访问的存储器或I/O端口已准备好传送数据。当READY无效时,要求CPU插入一个或多个等待周期TW,直到READY信号有效为止。

45 低8位数据线总是和偶地址的存储器或IO端口相连接, 这些存储器/IO端口称为偶地址体。
8086 CPU 引脚及功能 /S7(Bus High Enable/Status) 总线高字节有效信号。三态输出,低电平有效。非数据传送期间,该引脚用作S7,输出状态信息。 8086CPU的16根数据线中: 低8位数据线总是和偶地址的存储器或IO端口相连接, 这些存储器/IO端口称为偶地址体。 高8位的数据线与奇地址的存储器或IO端口相连接,这些存储器/IO端口称为奇地址体。

46 有效表示CPU正在使用高8位的数据线对奇体的存储单元或IO端口进行访问。它与最低位地址码A0配合起来表示当前总线使用情况,如下表:
AD0 总线使用情况 16位数据总线上进行字传送 1 高8位数据总线上进行字节传送 低8位数据总线上进行字节传送 无效

47 ALE(Address Latch Enable) 地址锁存允许信号,向外部输出,高电平有效。
8086 CPU 引脚及功能 ALE(Address Latch Enable) 地址锁存允许信号,向外部输出,高电平有效。 (Data Enable)数据允许信号,三态输出。表示CPU 当前准备发送或接受数据。 DT/ (Data Transmit/Receive) 数据发送/接收控制信号,三态输出。CPU写数据到存储器或I/O端口时,输出高电平;CPU从存储器或I/O端口读取数据时,为低电平。

48 3、中断控制信号引脚 INTR(Interrupt Request) 可屏蔽中断请求信号,由外部输入,电平触发,高电平有效。
8086 CPU 引脚及功能 3、中断控制信号引脚 这一组引脚传输中断的请求和应答信号。 INTR(Interrupt Request) 可屏蔽中断请求信号,由外部输入,电平触发,高电平有效。 CPU在每条指令的最后一个时钟周期对INTR进行测试,一旦测试到中断请求,并且当前中断允许标志IF=1,则暂停执行下一条指令转入中断响应周期。

49 (Interrupt Acknowledge)中断响应信号。向外部输出,低电平有效。
8086 CPU引脚及功能 (Interrupt Acknowledge)中断响应信号。向外部输出,低电平有效。 该信号表示CPU已经收到并且响应外部发来的INTR信号,要求请求中断的设备向CPU发送中断类型。 NMI(Non Maskable Interrupt Request) 不可屏蔽中断请求信号。 由外部输入,边沿触发,正跳沿有效,不受中断允许标志的限制。

50 进行DMA传输之前要向CPU申请使用总线并取得认可。 HOLD(Hold Request)总线请求信号。由外部输入,高电平有效。
HLDA(Hold Acknowledge)总线请求响应信号。向外部输出,高电平有效。 CPU一旦测试到有HOLD请求,就在当前总线周期结束后,使HLDA有效,让出总线使用权。 HOLD变为无效后,CPU也将HLDA置成无效,并收回对总线的控制权。

51 Vcc(电源) 8086 CPU只需要单一的+5V电源,由Vcc引脚输入。
5、其他引脚 Vcc(电源) 8086 CPU只需要单一的+5V电源,由Vcc引脚输入。 CLK(Clock)主时钟信号,输入。由8284时钟发生器产生。 MN/ (Minimum/Maximum)工作模式选择信号。由外部输入,高电平时,CPU工作在最小模式,低电平时,CPU工作在最大模式。

52 RESET 复位信号。由外部输入,高电平有效。
8086 CPU 引脚及功能 RESET 复位信号。由外部输入,高电平有效。 RESET复位信号通常由计算机机箱上的复位按钮产生 RESET信号至少要保持4个时钟周期才有效。 该信号有效,将使CPU回到其初始状态;当他再度返回无效时,CPU将重新开始工作。 8088复位后CS=FFFFH、IP=0000H,所以程序入口在物理地址FFFF0H。

53 8086 CPU 引脚及功能 TEST 测试信号。 由外部输入,低电平有效。CPU 执行WAIT指令时,每隔5个时钟周期对TEST进行一次测试,若测试无效,则CPU处于踏步等待状态。有效后,CPU执行WAIT指令后面的下一条指令。

54 S2~S0 :总线周期状态信号,三态输出。由CPU传送给总线控制器8288的总线周期状态信号。
6、最大模式下的24-31引脚 S2~S0 :总线周期状态信号,三态输出。由CPU传送给总线控制器8288的总线周期状态信号。 无源状态 1 WMTC(存储器写) 写内存 MRDC(存储器读) 读内存 取指令 暂停 IOWC(IO写) 写IO端口 IORC(IO读) 读IO端口 INTA(中断响应) 中断响应 经总线控制器8288产生的信号 操 作 S0 S1 S2

55 RQ/GT0 、RQ/GT1 (Request/Grant) 请求/允许总线访问控制信号。双向。P22
8086 CPU 引脚及功能 LOCK 总线封锁信号。三态输出。有效时表示CPU不允许其他总线主控者占用总线。这个信号由软件设置。在指令前加上LOCK前缀时,则在执行这条指令期间保持有效,阻止其他主控者使用总线。 RQ/GT0 、RQ/GT1 (Request/Grant) 请求/允许总线访问控制信号。双向。P22 输入低电平表示其他主控者向CPU请求使用总线;输出低电平表示CPU对总线请求的响应。 QS1,QS0(Instruction Queue Status) 指令队列状态。向外部输出。P23

56 为CPU工作提供适当的时钟信号,对外界输入的 控制/联络信号进行同步处理;
第二章:8086微处理器的结构 系统配置(加) 8086 CPU 必须加上必要的支持芯片,如时钟电路 、地址锁存器、总线驱动器及存储器和I/O接口电路及基本外围设备等构成一个完整的微机系统。根据不同的要求可设计成最大模式系统和最小模式系统。 外围芯片的作用是: 为CPU工作提供适当的时钟信号,对外界输入的 控制/联络信号进行同步处理;

57 最小模式下系统的配置 分离CPU输出的地址/数据分时复用信号,得到独立 的地址总线和数据总线信号,同时还增强它们的驱 动能力。 对CPU输出的控制信号进行组合,产生稳定可靠、 便于使用的系统总线信号。 最小工作模式: 系统中只有一个8086处理器 所有的总线控制信号都由8086 CPU直接产生 构成系统所需的总线控制逻辑部件最少

58 §3 8086/8088 系统配置 最大工作模式: 系统内可以有一个以上的处理器,除了8086作为“中央处理器”之外,还可以配置用于数值计算的8087“数值协处理器”和用于I/O管理的“I/O协处理器”8089; 各个处理器发往总线的命令统一送往“总线控制器”,由它“仲裁”后发出。 CPU的工作模式由MN/ MX决定。

59 一、最小模式下系统的配置

60 最小模式下系统的配置 三态输出锁存器(三片74LS373) 8086在它的分时引脚AD15~AD0,A19/S6~A16/S3上输出地址信号时,20位地址被三片74LS373锁存。在8086访问存储器/IO设备的整个周期里,74LS373都会稳定地输出20位地址信号。 在最小模式下,8282还同时锁存了8086输出的BHE信号并送往系统总线。 典型的有8282/8283芯片和74LS373芯片,它们是带三态输出的8位下降沿锁存的锁存器。

61 最小模式下系统的配置 74LS373的引脚图: D0~D7:数据输入端(3,4,7,8,13,14,17,18)
(接8086AD15~AD0、A19~A16、 BHE) O0~O7:数据输出端(2,5,6,9,12,15,16,19) (接地址总线、BHE控制信号) LE(G):锁存允许端(接8086的ALE) OE(E):三态允许控制端(接地)

62 74LS373的引脚图 内部结构图 0E(E) LE(G) DN QN L H X 不变 高阻态 功能表

63 最小模式下系统的配置 双向总线驱动器(两片总线数据收发器74LS245) 245是一种三态输出的8位双向总线收发器/驱动器,具有很强的总线驱动能力。它有二组8位双向的输入/输出数据线A7~A0和B7~B0。 245有二个控制信号:数据传送方向控制信号DIR(与8086的数据收发信号DT/R相连)和输出允许信号OE(与8086的数据允许信号DEN相连)。 二片245的A7~A0引脚与8086的AD15~AD0相连,而二组B7~B0则成为系统数据总线。

64 最小模式下系统的配置 74LS245的引脚图: A1—A8:A总线端 B1—B8:B总线端 OE:三态允许端 DIR:方向控制端

65 最小模式下系统的配置 功能表 高阻态 X H A B L B A DIR OE OPERATION INPUT 内部结构图

66 最大模式是一个多处理器系统,需要解决主处理器和协处理器之间的协调和对系统总线的共享控制问题。
8086最大模式下系统的配置 二、最大模式下系统的配置 最大模式是一个多处理器系统,需要解决主处理器和协处理器之间的协调和对系统总线的共享控制问题。 硬件方面,增加了一个总线控制器8288,由8288对各处理器发出的控制信号进行变换和组合,最终由8288产生总线控制信号,而不是由CPU直接产生。

67 8086最大模式下系统的配置 最大方式下的配置结构图:

68 8086最大模式下系统的配置 (1)总线控制器 8288 8288的组成: 状态译码器; 命令信号发生器;控制信号发生器;控制逻辑。

69 8086 CPU的时序 微处理的基本时序 时序的一般概念 1、时钟周期 相邻两个脉冲之间的时间间隔,称为一个时钟周期,又称T状态(T周期)。 CLK T 时钟周期是CPU的时间基准,由计算机的主频决定, 8086CPU的总线周期至少由4个时钟周期组成,分别以 T1、T2、T3和T4表示。

70 CPU通过总线完成与存储器、I/O端口之间的操作,这些操作统称为总线操作。
2、总线周期 CPU通过总线完成与存储器、I/O端口之间的操作,这些操作统称为总线操作。 数据总线 DB 控制总线 CB 地址总线 AB I/O CPU

71 8086 CPU的时序 执行一个总线操作所需要的时间称为总线周期。

72 一个基本的总线周期通常包含4个T状态,按时间的先后顺序分别称为T1、T2、T3、T4
8086 CPU的时序 一个基本的总线周期通常包含4个T状态,按时间的先后顺序分别称为T1、T2、T3、T4 总线周期 T1 T2 T3 T4 CLK

73 8086 CPU的时序 3、指令周期 执行一条指令所需要的时间称为指令周期。 用所需的时钟周期数表示 例 MOV BX, AX 2个T周期
是取指令、执行指令、取操作数、存放结果所需时间的总和。 用所需的时钟周期数表示 不同指令的执行时间(即指令周期)是不同的,同一类型的指令,由于操作数不同,指令周期也不同。 例 MOV BX, AX 个T周期 MUL BL ~77个T周期

74 执行指令的过程中,需从存储器或I/O端口读取或存放数据,故一个指令周期通常包含若干个总线周期。
8086 CPU的时序 执行指令的过程中,需从存储器或I/O端口读取或存放数据,故一个指令周期通常包含若干个总线周期。 例2 执行ADD [ BX ], AX 包含: 1) 取指令 存储器读周期 2) 取 ( DS:BX )内存单元操作数 存储器读周期 3) 存放结果到 ( DS:BX )内存单元 存储器写周期

75 8086 CPU的时序 8086 CPU的总线周期 每个总线周期至少由4个时钟周期(T1、T2、T3、T4)组成,如果同CPU进行数据交换的内存或I/O接口不能在三个T内完成数据交换,则在T3和T4之间插入TW。

76 8086 CPU的时序 几种基本时序的分析 8086CPU的操作可分为内部操作和外部操作。 内部操作: 控制ALU进行算逻运算,控制寄存器组进行寄存器的选择以及送数据线还是送地址线,是读操作还是写操作等,用户不必关心。 外部操作: 是系统对CPU的控制或CPU对系统的控制,用户需了解控制信号的的正确使用。

77 8086 CPU的时序 8086CPU的外部操作主要有如下几种: 存储区读写 I/O端口读写 中断响应 总线保持/响应(最小模式) 总线请求/允许(最大模式) 复位和启动 暂停

78 8086 CPU 的时序 1、总线读操作 一个总线读周期由四个时钟周期(也称为状态)组成。

79 最小模式下的总线读周期 T1 状 态: M/IO:指出CPU是从内存还是从I/O端口读取数据,电平一直保持到总线读周期结束。
地址:CPU从(A19/S6~A16/S3)和(AD15~AD0)上发出读取存储器的20位地址或I/O端口的16位地址。 ALE:CPU从ALE引脚输出一个正脉冲作为地址锁存信号。在T1状态结束时,地址信号已稳定有效,ALE变为低电平,20位地址被锁入74LS373地址锁存器。 BHE:如果CPU需要从内存的奇地址单元或者奇地址的IO端口读取数据,则输出BHE(=0)信号,它表示高8位数据线上的数据有效。 DT/R:使总线收发器8286处于接受状态。

80 地址:地址信息撤消,A19/S6~A16/S3上输出状态信息S6~S3,AD15~AD0进入高阻态,为读取数据作准备
最小模式下的总线读周期 T2 状态: 地址:地址信息撤消,A19/S6~A16/S3上输出状态信息S6~S3,AD15~AD0进入高阻态,为读取数据作准备 RD:读信号变为低电平,通知存储单元或I/O端口进行读操作,打开其数据缓冲器,将读出数据送上数据总线。 DEN:变为有效低电平,用来开放总线收发器8286,准备接收数据。 DT/R:继续保持有效的低电平,处于接收状态。

81 T3状态的一开始,CPU检测READY引脚信号:
最小模式下的总线读周期 T3 状态: T3状态的一开始,CPU检测READY引脚信号: 若READY为低电平,则表示系统中挂接的存储器或外设不能如期送出数据,要求CPU在T3和T4状态之间插入1个或几个等待状态Tw。 READY为高电平,CPU从AD15~AD0读取数据,进入T4。 TW 状态 : 进入TW状态后,CPU在每个TW状态的下降沿采样READY信号,若为低电平,则继续插入等待状态TW ,直到READY信号为高电平,表示数据已出现在数据总线上,CPU从AD15~AD0读取数据。

82 最小模式下的总线读周期 T4 状态: 在T3(TW)和T4状态交界的下降沿处,CPU对数据总线上的数据进行采样,完成读取数据的操作。 在T4状态的后半周数据从数据总线上撤消。各控制信号和状态信号处于无效状态,DEN为高(无效),关闭数据总线收发器,一个读周期结束。

83 最小模式下的总线读周期 综上可知,总线读周期中: T1状态送出地址及相关信号; T2发出读命令和8286控制命令; T3、TW 等待数据的出现; T4状态将数据读入CPU。

84 最小模式下的总线写周期 2、总线写周期 写总线周期由4个时钟周期组成。当存储器或I/O设备速度较慢时,在T3和T4之间插入1个或几个等待状态TW。 与读周期不同: 写周期中,数据总线在T2状态直接输出数据(无缓冲期) DT/R信号为高电平,表示本周期为写周期,控制8286向外发送数据。 写周期中WR信号有效,RD信号变为无效,它们出现的时间类似。

85 最小模式下总线写周期的时序

86 中断响应操作 3、中断响应操作 当INTR引脚有一高电平且CF=1时,8086CPU执行完当前的指令后,响应中断,执行2个中断响应周期。

87 总线保持与响应 4、总线保持与响应 当DMAC向8086CPU发出总线请求信号HOLD时,CPU接到信号后,在当前总线周期的T4或下一总线周期T1的下降沿,输出响应信号HLDA并让出总线的控制权。当DMA传送结束时,HOLD变低电平,在下一时钟下降沿时HLDA无效。

88 5、系统复位

89

90

91 Thank You !


Download ppt "汇编语言与接口技术 教师:范新民."

Similar presentations


Ads by Google