《数学微机原理》PPT课件.ppt_第1页
《数学微机原理》PPT课件.ppt_第2页
《数学微机原理》PPT课件.ppt_第3页
《数学微机原理》PPT课件.ppt_第4页
《数学微机原理》PPT课件.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 16位和32位微处理器,本章内容 CPU的编程结构 标志寄存器的含义 CPU的操作时序 CPU的中断分类和中断向量 硬件中断和软件中断的区别,软件中断的特点 80386 的功能部件 32位微型机的三种工作方式,教学重点,1、8086/8088微处理器的组成及存储器组织 2、8086/8088CPU的两种工作模式 3、8086/8088CPU的外部结构及引脚功能 4、时序的概念及典型时序分析,2.1 8088/8086的编程结构,8088的编程结构从功能分成两个单元 (1)总线接口单元BIU管理8088与系统总线的接口,负责CPU对存储器和外设进行访问 (2)执行单元EU负责指令的译码、执行和数据的运算 两个单元相互独立,分别完成各自操作 两个单元可以并行执行,实现指令取指和执行的流水线操作,8086/8088的编程结构,1 2 3 4,内部暂存器,IP,ES,SS,DS,CS,输入/输出控制电路,外部总线,执行部分控制电路,ALU,标志寄存器,AH AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,通用 寄存器,地址加法器,指令队列,执行部件 (EU),总线接口部件 (BIU),16位,20位,16/8位,8位,1. 总线接口部件,总线接口部件负责与存储器、I/O端口传送数 据 ,由下列4部分组成: 4个段地址寄存器(CS、DS、ES、SS) 16位的指令指针寄存器 IP(Instruction Pointer) 20位的地址加法器 6字节的指令队列缓冲器,2. 执行部件,执行部件负责指令的执行 ,由下列4部分组成: 4个通用寄存器,即AX、BX、CX、DX; 4个专用寄存器,即 基数指针寄存器BP(base pointer) 堆栈指针寄存器SP(stack pointer) 源变址寄存器SI(source index) 目的变址寄存器DI(destination index); 标志寄存器; 算术逻辑部件(arithmetic logic unit)。,8088的指令执行过程,(3) 8086/8088BIU的特点,8086/8088的指令队列分别为6/4个字节,在执行指令的同时,可从内存中取出后续的指令代码,放在指令队列中。 地址加法器用来产生20位物理地址。8086/8088可用20位地址寻址1M字节的内存空间,而CPU内部的寄存器都是16 位,需要由20位的地址加法器完成抵制运算。 如:CS0FE00H,IP0400H,则表示要取指令代码的物理地址为0FE400H。,(4) BIU与EU的动作协调原则,每当8086的指令队列中有两个空字节,或8088的指令队列中有一个空字节时,BIU就会自动把指令取到指令队列中。其取指的顺序是按指令在程序中出现的前后顺序。,(4) BIU与EU的动作协调原则,每当EU准备执行一条指令时,它会从BIU部件的指令队列前部取出指令的代码,执行指令的过程中,如果必须访问存储器或者IO端口,那么EU就会请求BIU,进入总线周期,完成访问内存或者IO端口的操作 ;如果BIU正处于空闲状态,立即响应EU的总线请求。如BIU正取指令,则BIU完成取指总线周期,再响应EU的访问总线请求。,当指令队列已满,且EU又没有总线访问请求时,BIU便进入空闲状态。 在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,BIU会接着往指令队列装入转向的另一程序段中的指令代码。,(4) BIU与EU的动作协调原则,将8086/8088 CPU分成二个独立的功能部件使二者能够并行工作,把取指令工作和分析指令、执行指令工作重叠进行,从而提高CPU的工作效力,加快指令的执行速度。指令队列的工作原理是“先进先出“,写入的指令只能存放在队列尾,读出的指令是队列头存放的指令。EU和BIU之间就是通过指令队列联系起来,多数情况下,BIU在不停地向队列写入指令,而EU每执行完一条指令后,就向队列读取下一条指令。二者的动作既独立,又协调。,(4) BIU与EU的动作协调原则,8086内部寄存器有: 4个通用寄存器 4个专用寄存器 4个段寄存器 1个指令指针寄存器 1个标志寄存器,(5) 8086/8088CPU内部寄存器, 8086的通用寄存器,8086的16位通用寄存器是: AX BX CX DX 其中AX称为累加器,BX称为基址寄存器, CX称为计数寄存器,DX称为数据寄存器 8086的8位通用寄存器是: AH BH CH DH AL BL CL DL 对其中某8位的操作,并不影响另外对应8位的数据。,数据寄存器,数据寄存器用来存放计算的结果和操作数,也可以存放地址。 每个寄存器又有它们各自的专用目的: AX累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等; BX基址寄存器,常用做存放存储器地址; CX计数器,作为循环和串操作等指令中的隐含计数器; DX数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。,指针寄存器SP和BP SP是堆栈指针寄存器,它和堆栈段寄存器SS一起来确定堆栈在内存中的位置; BP是基数指针寄存器,用于存放基地址。 变址寄存器SI和DI SI是源变址寄存器 DI是目的变址寄存器,用于指令的变址寻址方式。, 8086的专用寄存器, 段寄存器,DS 数据段寄存器 (Data Segment) CS 代码段寄存器 (Code Segment) ES 附加段寄存器 (Extra Segment) SS 堆栈段寄存器 (Stack Segment) 这些段寄存器的内容与有效的地址一起,用于确定内存的物理地址。通常用CS、DS、ES以及SS用于确定代码段、数据段、附加段以及堆栈段的基地址。,指令指针IP,指令指针寄存器IP,指示代码段中指令的偏移地址。 它与代码段寄存器CS联用,确定下一条指令的物理地址。 计算机通过CS : IP寄存器来控制指令序列的执行流程。 IP寄存器是一个专用寄存器。,标志寄存器,标志(Flag)用于反映指令执行结果或控制指令执行形式。 8086处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器)。,程序设计需要利用标志的状态,标志的分类,6个状态标志:用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它的状态。共有6个状态标志位: CF ZF SF PF OF AF 3个控制标志:可由程序根据需要用指令设置,用于控制处理器执行指令的方式 DF IF TF,进位标志CF(Carry Flag),当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。,49H + 6DHB6H, 没有进位:CF = 0 BBH + 6AH(1)25H, 有进位:CF = 1,零标志ZF(Zero Flag),若运算结果为0,则ZF = 1; 否则ZF = 0,49H + 6DHB6H,结果不是零:ZF = 0 75H + 8BH(1)00H,结果是零:ZF = 1,注意: ZF为1表示的结果是0,符号标志SF(Sign Flag),运算结果最高位为1,则SF = 1;否则SF = 0,有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态,49H + 6DHB6H,结果不是零:ZF = 0 75H + 8BH(1)00H,结果是零:ZF = 1,奇偶标志PF(Parity Flag),当运算结果最低字节中“1”的个数为零或偶数时,PF = 1;否则PF = 0,3AH + 7CHB6H10110110B 结果中有5个1,是奇数:PF = 0,PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作,溢出标志OF(Overflow Flag),若算术运算的结果有溢出, 则OF1;否则 OF0,49H + 6DH B6H,产生溢出:OF = 1 75H + 8BH (1)00H,没有溢出:OF = 0,什么是溢出?,处理器内部以补码表示有符号数 8位补码表达的整数范围是:127128 16位补码表达的范围是:3276732768 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确,49H6DHB6H,就是73109182, 已经超出128127范围,产生溢出,故OF1; 另一方面,补码B6H表达真值是-74,显然运算结果也不正确。,溢出和进位,溢出标志OF和进位标志CF是两个意义不同的标志。 进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确。 溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。,溢出和进位的对比,例1:49H + 6DHB6H 无符号数运算: 73109182 范围内,无进位 有符号数运算: 73109182 范围外,有溢出,例2:BBH + 6AH(1)25H 无符号数运算: 187106293 范围外,有进位 有符号数运算: 6910637 范围内,无溢出,溢出的判断,判断运算结果是否溢出有一个简单的规则: 只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出,因为,此时的运算结果显然不正确。 其他情况下,则不会产生溢出,辅助进位标志AF(Auxiliary Carry Flag),49H + 6DHB6H,D3有进位:AF = 1,运算时D3位(低半字节)有进位或借位时,AF = 1;否则AF = 0。,这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心。,方向标志DF(Direction Flag),用于串操作指令中,控制地址的变化方向: 设置DF0,存储器地址自动增加; 设置DF1,存储器地址自动减少。,CLD指令复位方向标志:DF0 STD指令置位方向标志:DF1,中断允许标志IF(Interrupt-enable Flag),用于控制外部可屏蔽中断是否可以被处理器响应: 设置IF1,则允许中断; 设置IF0,则禁止中断。,CLI指令复位中断标志:IF0 STI指令置位中断标志:IF1,陷阱标志TF(Trap Flag),用于控制处理器进入单步操作方式: 设置TF0,处理器正常工作; 设置TF1,处理器单步执行指令。,单步执行指令处理器在每条指令执行结束时,便产生一个编号为1的内部中断这种内部中断称为单步中断,所以TF也称为单步标志 利用单步中断可对程序进行逐条指令的调试 这种逐条指令调试程序的方法就是单步调试,DEBUG中各标志位的符号表示,3. 8086的总线周期的概念,典型的8086总线周期序列:, T1状态,发地址信息 T2状态,总线的高4位输出状态信息 T3状态,高4位 状态信息,低16位 数据 T3之后,可能插入TW 在T4状态,结束。,1.最大模式和最小模式的概念 最小模式:系统中只有一个微处理器,所有的总线控制信号直接由8086/8088CPU产生,系统中的总线控制电路被减到最少 最大模式:系统中至少包含两个微处理器,其中一个为主处理器8086/8088CPU,其它微处理器为协处理器,协助主处理器工作,2.1.2 8086的引脚信号和工作模式,8087:数值运算协处理器,实现多种类型的数值运算(整型、浮点型数值),超越函数(三角函数、对数函数)的计算等,8089协处理器:有专门用于输入/输出操作的指令系统,可直接为输入/输出设备服务,使主处理器不再承担这类工作。常用在输入/输出操作比较频繁的系统中,2、8086/8088CPU的引脚信号和功能,8086/8088CPU芯片都是双列直插式集成电路芯片,40个引脚,其中32个引脚在两种工作模式下的名称和功能相同,8个引脚在不同的工作模式下具有不同的名称和功能。,8086/8088的引脚图,(2)、两种模式下,名称和功能相同的32个引脚,VCC(40)、GND(1、20):电源、接地引脚,8088/8086CPU采用单一的+5V电源,但有两个接地引脚。 AD15AD0(Address Data Bus ,2-16, 39,三态):地址/数据复用信号输入/输出引脚,分时输出低16位地址信号及进行数据信号的输入/输出。,A19/S6A16/S3(Address Status Bus,3538,三态):地址/状态复用信号输出引脚,分时输出地址的高4位及状态信息,其中S6为0用以指示8086/8088CPU当前与总线连通; S5为1表明8086/8088CPU可以响应可屏蔽中断; S4、S3共有四个组合状态,用以指明当前使用的段寄存器,00ES,01SS,10CS,11DS。,BHE/S7 (Bus High Enable/Status 34):高8位数据允许/状态复用信号(输出)。分时输出有效信号,表示高8为数据线D15D8上的数据有效和S7 状态信号,但S7未定义任何实际意义。利用BHE信号和AD0信号,可知系统当前的操作类型: 00:从偶地址单元开始读/写一个字 AD15 AD0 01:从奇地址单元或端口读/写一个字节AD15 AD8 10:从偶地址单元或端口读/写一个字节AD7 AD0 11:无效,NMI(Non-Marskable Interrupt,17)非屏蔽中断请求信号(输入),上升沿触发。 INTR(Interrupt Request,18):可屏蔽中断请求信号(输入),高电平有效。CPU在执行每条指令的最后一个T状态对其采样,如果有效且IF=1,结束当前指令周期后响应。 RD(Read,32):读控制信号(输出),低电平有效,指明要执行一个读操作,CLK/(Clock,19):时钟信号(输入),占空比约33%的信号,8086/8088的时钟频率(称为主频)为5MHz RESET(21):复位信号(输入),高电平有效。8088/8086CPU要求复位信号至少保持4个时钟周期才能起到复位的作用。CPU结束当前操作,对标志寄存器、IP、DS、SS、ES寄存器及指令队列进行清零操作,将CS设置为0FFFFH。, READY(22):“准备好”信号(输入),高电平有效,来自于内存单元或I/O端口表明内存单元或I/O端口已经准备好进行读写操作。 TEST(23):测试信号(输入),低电平有效。由WAIT指令检测,CPU执行WAIT指令时,处于等待状态,检测到TEST引脚输入变低时,脱离等待状态,继续执行WAIT指令下面的指令。 MN/MX(Minimum/Maximum Model Control)最小/最大模式设置信号(输入),接+5V时,CPU工作于最小模式,接地时,CPU工作于最大模式下。,(3)、最小模式下的24-31引脚 INTA(Interrupt Acknowledge,24)中断响应信号(输出),低电平有效,CPU响应中断请求后,向中断源发出响应信号,通知中断源提供中断类型码,该信号为两个连续的负脉冲。 ALE(Address Lock Enable,25):地址锁存允许信号(输出),高电平有效,CPU通过该引脚向地址锁存器8282发出地址锁存允许信号,把地址/数据复用总线上输出的地址信息,锁存到地址锁存器8282中。 注意:ALE信号不能被浮空。,DEN(Data Enable,26):数据允许信号 ,低电平有效,为总线收发器8286提供一个控制信号,表示CPU当前准备发送或接收一项数据。 DT/R(Data Transmit/Receive,27):数据收/发控制信号,用于控制数据传送方向,高电平,表示数据由CPU经总线收/发器输出;低电平,数据输入 M/IO (Memory/Input &Output,28): M/IO端口选择信号, 低电平 时,表明CPU要进行I/O端口的读写操作,低位地址总线上出现的是I/O端口的地址;高电平时,表明CPU要进行存储器的读写操作,地址总线上出现的是要访问存储器的地址。,WR(Write,29): 写控制信号,低电平有效,实现对存储单元、I/O端口写操作控制。 HOLD(Hold Request,31): 总线保持请求信号,高电平有效。系统中其它总线部件向CPU发来的总线请求信号输入。 HLDA(Hold Acknowledge,30):总线保持响应信号(输出),高电平有效,CPU同意其他总线部件的总线占用请求,并让出总线控制权。,(4)、最大模式下的24-31引脚,QS1、QS0(Instruction Queue Status,24、25):指令队列状态信号输出,这两个信号的组合给出了前一个T状态中指令队列的状态,以便于外部对指令队列的跟踪 00:无操作 01:从指令队列取走第一个字节中的代码 10:队列为空 11:除第一个字节外,还取走了后续字节中的代码,S2、S1、S0(bus cycle status,26-28):总线周期状态信号,这些信号的组合,指出当前总线周期,所进行数据传输过程的类型,总线控制器8288利用这些信号产生对存储单元、I/O端口的读写控制信号。 000:中断响应 001:读I/O端口 010: 写I/O端口 011:暂停 100: 取指 101:读存储器 110:写存储器 111:无源状态, LOCK(Lock,29):总线封锁输出信号,低电平有效,低电平时,系统中其它总线部件不能占用总线。该信号是由指令前缀LOCK产生的,在LOCK前缀后面的一条指令执行完毕之后,撤消此信号。此外,在2个中断响应脉冲之间,该信号自动变为低电平,防止一个完整的中断响应过程被中断。,RQ/GT0、RQ/GT1(Request/Grant,30、 31):总线请求/总线允许信号。供CPU以外的两个处理器,用来发出使用总线的请求信号和接收CPU对总线请求的响应。这两个引脚都是双向的,请求与应答信号在同一引脚上分时传输,方向相反。 RQ/GT0的优先权高于RQ/GT1,总结 具有分时复用总线功能的引脚:AD0AD15、A16/S3A19/S6 、BHE/S7 ; 具有三态性的引脚: AD0AD15、A16S3A19S6 、BHE/S7 、RD、WR、M/IO、DT/R、DEN、INTA等; 最大模式下和最小模式下含义不同的引脚:24腿31腿; 8086和8088不同的引脚:28腿,39腿,28腿,34腿;,8086/8088引脚功能区别:,1、外部数据总线的宽度不同。8086的外部数据总线为16位(AD15AD0);8088的外部数据总线为8位(AD7AD0)。 2、第28引脚不同。8086的第28引脚为M/IO,即该引脚信号为高电平,表示对存储器操作,为低电平则是对I/O端口操作;8088的第28引脚为M/IO,即该引脚信号为高电平,表示对I/O端口操作,为低电平则是对存储器操作。 3、第34引脚不同。8086的第34引脚为BHE/S7,其功能已如前述;8088的第34引脚为SSO,在最小模式下的功能已如前述,在最大模式该引脚恒为“1”。,8086在最小模式下的典型配置,MN/MX端接+5V,决定了工作模式; 有一片8284A,作为时钟信号发生器; 有三片8282或74LS273,用来作为地址信号的锁存器; 当系统中所连的存储器和外设端口较多时,需要增加数据总线的驱动能力,这时,需用2片8286/8287作为数据总线收发器,工作原理说明:,该CPU系统以8086为核心,外部晶体振荡器产生的振荡信号经8284分频后,作为主频信号CLK提供给8086,外部来的准备好信号READY和复位信号RESET也经8284A整理后送往8086。 8086的20位地址信号A19A16,AD15AD0,以及高位字节允许信号,在地址锁存信号ALE控制下经8282锁存后输出,即为地址总线。 8086的16位数据线AD15AD0在8286的控制下可以进行双向数据传送,即为数据总线。,8086在最大模式下的典型配置,最小模式所拥有的配置; 有一片8288总线控制器来对CPU发出的控制信号进行变换和组合,以得到对存储器或I/O 端口的读/写信号和对锁存器8282及数据总线收发器8286

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论