第二章微处理器_第1页
第二章微处理器_第2页
第二章微处理器_第3页
第二章微处理器_第4页
第二章微处理器_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术

——第二章:8086/8088微处理器皖西学院信息工程学院学习重点:CPU内部的寄存器CPU外部的引脚1左旭坤(zxk78@)第二章:8086/8088微处理器8086CPU内部结构8086CPU引脚8086CPU的工作时序2左旭坤(zxk78@)第二章:8086/8088微处理器8086CPU内部结构

8086CPU引脚8086CPU的工作时序3左旭坤(zxk78@)8086/8088微处理器——微处理器的结构8086/8088微处理器8086/8088微处理器是Intel公司推出的第三代CPU芯片,都有16根数据线和20根地址线。它们的内部结构基本相同,但外部性能有所差异,两种处理器都封装在相同的40脚双列直插组件中。4左旭坤(zxk78@)8086/8088微处理器——微处理器的结构每个存储单元的地址由一个20位二进制数表示8086CPU可直接访问的存储空间是220个字节由于CPU只有16根数据线,所以CPU内部的数据格式最多不能超过16位。CPU如何存放20位的地址?20位地址段地址偏移地址16位16位20根地址线16根数据线5左旭坤(zxk78@)8086/8088微处理器——微处理器的结构8086/8088微处理器的编程结构编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。6左旭坤(zxk78@)8086/8088微处理器——微处理器的结构16位段寄存器DS、CS、ES、SS保存指令/数据地址的段地址16位指令指针寄存器IP(保存指令地址的偏移量)6字节指令队列缓冲器(8088为4字节)功能:控制总线,负责从内存中取指令,送入指令队列;实现CPU与内存或I/O接口之间的数据传送。BIU16位通用寄存器AX、BX、CX、DX保存数据或数据的地址的偏移量16位专用寄存器(BP、SP、SI、DI)保存数据地址的偏移量FLAGS功能:负责分析指令和执行指令。EU7左旭坤(zxk78@)8086/8088微处理器——微处理器的结构例:执行一次加法操作:ADDAX,BX;其中加法指令的段地址在CS中,偏移量在IP中。8左旭坤(zxk78@)8086/8088微处理器——微处理器的结构CS和IP的值送20位地址加法器,生成加法指令所在内存单元的地址。ADDAX,BX9左旭坤(zxk78@)8086/8088微处理器——微处理器的结构输入/输出控制电路将该地址送地址总线,同时通过控制总线向内存发出控制信号(使能信号、读信号)。ADDAX,BX10左旭坤(zxk78@)8086/8088微处理器——微处理器的结构内存接收到控制信号后,根据地址总线上的地址,选中存放加法指令的存储单元;并将加法指令从该存储单元送往数据总线。ADDAX,BX11左旭坤(zxk78@)8086/8088微处理器——微处理器的结构输入输出控制电路从数据总线上取得指令,并通过内部总线将指令送入指令队列。ADDAX,BX12左旭坤(zxk78@)8086/8088微处理器——微处理器的结构执行部件控制电路通过内部总线从指令队列取得指令,并对指令译码。ADDAX,BX13左旭坤(zxk78@)8086/8088微处理器——微处理器的结构执行部件控制电路通过内部总线先后从AX寄存器和BX寄存器取得加数送运算寄存器,再将加数同时送ALU(算术逻辑部件)进行加法运算。ADDAX,BX14左旭坤(zxk78@)8086/8088微处理器——微处理器的结构执行部件控制电路通过内部总线将运算结果送回AX寄存器,并根据结果修改标志寄存器的相关位。ADDAX,BX15左旭坤(zxk78@)8086/8088微处理器——微处理器的结构BIU和EU的动作协调原则BIU和EU按以下流水线技术原则协调工作,共同完成所要求的任务:①每当8086的指令队列中有两个空字节,BIU就会自动把指令取到指令队列中。其取指的顺序是按指令在程序中出现的前后顺序。②每当EU准备执行一条指令时,它会从BIU部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者I/O端口,那么EU就会请求BIU,进入总线周期,完成访问内存或者I/O端口的操作;如果此时BIU正好处于空闲状态,会立即响应EU的总线请求。如BIU正将某个指令字节取到指令队列中,则BIU将首先完成这个取指令的总线周期,然后再去响应EU发出的访问总线的请求。③当指令队列已满,且EU又没有总线访问请求时,BIU便进入空闲状态。16左旭坤(zxk78@)8086/8088微处理器——微处理器的结构BIU和EU的动作协调原则

将8086/8088CPU分成二个独立的功能部件使二者能够并行工作,把取指令工作和分析指令、执行指令工作重叠进行,从而提高CPU的工作效力,加快指令的执行速度。指令队列可以被看成是一个特殊的存储器,它的工作原理是“先进先出”,最新写入的指令存放在队列尾,读出的指令是队列头存放的指令。EU和BIU之间就是通过指令队列联系起来,多数情况下,BIU在不停地向队列写入指令,而EU每执行完一条指令后,就向队列读取下一条指令。二者的动作既独立,又协调。17左旭坤(zxk78@)8086/8088微处理器——微处理器的内部寄存器一.段寄存器

系统中共有4个16位段寄存器,即代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。这些段寄存器的内容与偏移地址一起,可确定内存的物理地址。通常CS被规定并控制程序区,DS和ES控制数据区,SS控制堆栈区。用于存放当前正在运行的指令的段地址用于存放程序中用到的数据的段地址堆栈的段地址附加的数据的段地址堆栈:

在内存中开辟的专用存储区,由若干个连续的内存单元组成,用来来临时存放一些数据或地址。18左旭坤(zxk78@)8086/8088微处理器——微处理器的内部寄存器

二.通用寄存器

8086/8088有4个16位的通用寄存器(AX、BX、CX、DX),可以存放16位的操作数;也可分为8个8位的寄存器(AL、AH;BL、BH;CL、CH;DL、DH)来使用。其中AX称为累加器,BX称为基址寄存器,CX称为计数寄存器,DX称为数据寄存器,这些寄存器主要用于存放参与运算的数据或数据地址的偏移量,在具体使用上有一定的差别。19左旭坤(zxk78@)8086/8088微处理器——微处理器的内部寄存器三.专用寄存器①指针寄存器系统中有两个16位的指针寄存器SP和BP,其中SP是堆栈指针寄存器,用于存放堆栈顶部的偏移地址,因此要与堆栈段寄存器配合使用;BP是基址指针寄存器,也可以存放堆栈顶部的偏移地址或其它内存单元的偏移地址甚至数据,具体由指令而定。②变址寄存器系统中有两个16位的变址寄存器SI和DI,其中SI是源变址寄存器,DI是目的变址寄存器,都可以存放内存单元的偏移地址,常用于串操作指令;也可以存放数据。20左旭坤(zxk78@)8086/8088微处理器——微处理器的内部寄存器四.控制寄存器

IP和状态FLAGS(PSW)是系统中的两个16位控制寄存器,

IP是指令指针寄存器,用来控制CPU的指令执行顺序,它和代码段寄存器CS一起可以确定当前所要取的指令的在内存中的地址。

FLAGS(PSW)是状态标志寄存器,用来存放8086CPU在工作过程中的状态。21左旭坤(zxk78@)8086/8088微处理器——微处理器的内部寄存器状态标志寄存器共有9个标志位。可分成两类:一类为状态标志,一类为控制标志。其中状态标志表示前一步操作(如加、减等)执行以后,CPU所处的状态,后续操作可以根据这些状态标志进行判断,实现程序转移;控制标志则可以通过指令人为设置,用以对某一种特定的功能起控制作用(如中断屏蔽等),反映了人们对微机系统工作方式的可控制性。状态标志位:CF—进位标志位,做加法时最高位出现进位或做减法时最高位出现借位,该位置1,反之为0。PF—奇偶标志位,当运算结果的低8位中l的个数为偶数时,则该位置1,反之为0。AF—半进位标志位,做字节加法时,当低四位有向高四位的进位,或在做减法时,低四位有向高四位的借位时,该标志位就置1。例:11011000+10101110=110000110——运算结束后:CF=1,PF=0,AF=122左旭坤(zxk78@)8086/8088微处理器——微处理器的内部寄存器标志寄存器

状态标志位:ZF—零标志位,运算结果为0时,该标志位置1,否则清0。SF—符号标志位,当运算结果的最高位为1,该标志位置1,否则清0。即与运算结果的最高位相同。OF—溢出标志位,反映运算结果是否超出了8位(-128~127)或16位(-32767~32768)带符号数所能表达的范围。控制标志位:TF—陷阱标志位(单步标志位、跟踪标志)。当该位置1时,将使8086/8088进入单步工作方式,通常用于程序的调试。IF—中断允许标志位,若该位置1,则处理器可以响应可屏蔽中断,否则就不能响应可屏蔽中断。DF—方向标志位,若该位置1,则串操作指令的地址修改为自动减量方向,反之,为自动增量方向。23左旭坤(zxk78@)8086/8088微处理器——系统中的存储器组织存储器分段

整个存储器分为若干段,每一段有64K个存储单元,每个单元的地址分为16位的段地址和16位的偏移地址两部分。段地址:0000H段地址:0000H;偏移地址:0000H段地址:0000H;偏移地址:0001H段地址:0000H;偏移地址:0002H段地址:0000H;偏移地址:FFFFH64K个单元......24左旭坤(zxk78@)8086/8088微处理器——系统中的存储器组织与存储单元地址相关的几个概念物理地址:一个存储单元的实际地址(20位)。物理地址与存储单元是一一对应关系。(20202H)段地址:是指一个段的起始地址(16位),一般将其存放在某个段寄存器中。(2000H)偏移地址:段内存储单元相对段内首单元的距离(16位)。同一个段内,各个存储单元的段地址是相同的,偏移地址是不同的。(0202H)逻辑地址:是一种地址表示形式(段地址:偏移地址)。一个逻辑地址只能对应一个物理地址,而一个物理地址可以对应多个逻辑地址。(2000:0202H)物理地址的计算方法物理地址=段地址×10H

+偏移地址如:某存储单元,段地址=2000H;偏移地址=0202H,则它的物理地址为?25左旭坤(zxk78@)8086/8088微处理器——系统中的存储器组织注意事项:1.物理地址与逻辑地址并不是一一对应的;

逻辑地址为:2000:0202H

物理地址是:20202H

2010:0102H20202H2.汇编语言程序是按段编写的,存储器也分为四类段:数据段、代码段、堆栈段和附加数据段;每个段的段地址都由指定的段寄存器存放。 代码段CS 数据段DS 堆栈段SS 附加段ES26左旭坤(zxk78@)第二章:8086/8088微处理器8086CPU内部结构8086CPU引脚8086CPU的工作时序27左旭坤(zxk78@)8086/8088微处理器——微处理器的引脚功能8086引脚结构图学习方法:记住重要引脚的有效电平;信号流向;信号功能。28左旭坤(zxk78@)8086/8088微处理器——微处理器的引脚功能8086引脚结构VCC(40)、GND(1、20):电源、接地引脚,8086CPU采用单一的+5V电源,但有两个接地引脚。CLK/(Clock,19):时钟信号输入引脚,时钟信号是占空比约为33%的方波信号,即1/3周期为高电平,2/3周期为低电平,8086的时钟信号频率(又称为主频)为5MHz,即从该引脚输入的时钟信号的频率为5MHz,该信号为CPU提供计时基准。RESET(Reset,21):复位信号输入引脚,高电平有效。8086CPU要求复位信号至少维持4个时钟(信号)周期才能起到复位的效果,复位信号输入之后,CPU结束当前操作,并对处理器的标志寄存器、IP、DS、SS、ES寄存器及指令队列进行清零操作,而将CS设置为0FFFFH。

READY(Ready,22):“准备好”状态信号输入引脚,高电平有效,“Ready”输入引脚接收来自于内存单元或I/O接口向CPU发来的“准备好”状态信号,表明内存单元或I/O接口已经准备好进行读写操作。该信号是协调CPU与内存单元或I/O接口之间进行信息传送的联络信号。TEST(Test,23):测试信号输入引脚,低电平有效。TEST信号与WAIT指令结合起来使用,CPU执行WAIT指令后,处于等待状态,当TEST引脚输入低电平时,系统脱离等待状态,继续执行被暂停执行的指令。RD(Read,32,三态):读控制输出信号引脚,低电平有效,用以指明要执行一个对内存单元或I/O接口的读操作,具体是读内存单元还是I/O接口,取决于其它信号。29左旭坤(zxk78@)8086/8088微处理器——微处理器的引脚功能8086引脚结构NMI(Non-MaskableInterrupt,17)、INTR(InterruptRequest,18):中断请求信号输入引脚,高电平有效,引入中断源向CPU提出的中断请求信号,前者为非屏蔽中断请求,后者为可屏蔽中断请求信号。AD15—AD0(AddressDataBus,2—16,三态):地址/数据复用信号输入/输出引脚,分时输出低16位地址信号及进行数据信号的输入/输出。A19/S6—A16/S3(AddressStatusBus,35—38,三态):地址/状态复用信号输出引脚,分时输出地址的高4位及状态信息,其中S6为0;S5为1表明8086CPU可以响应可屏蔽中断;S4、S3共有四个组合状态,用以指明当前使用的段寄存器,00—ES,01—SS,10—CS,11—DS。BHE/S7

(BusHighEnable/Status,34,三态):高8位数据允许/状态复用信号输出引脚。分时输出BHE和S7信号,BHE为低电平表示高8位数据线D15—D8上的数据有效;与A0配合控制数据传递情况。S7未定义任何实际意义。8086总线分时复用含义和特点所谓总线分时复用就是同一总线在不同时间传输的是不同的信号,这些信号的作用是不同的。采用总线分时复用方法在不影响CPU功能的情况下,减少了CPU的引脚数,使系统得到简化。缺点:CPU不能同时输出数据、地址和状态信息。30左旭坤(zxk78@)8086/8088微处理器——微处理器的引脚功能8086引脚结构MN/MX(Minimum/MaximumModelControl,33):最小/最大模式设置信号输入引脚,该输入引脚电平的高、低决定了CPU工作在最小模式还是最大模式,当该引脚接+5V时,CPU工作于最小模式下,当该引脚接地时,CPU工作于最大模式下。INTA(InterruptAcknowledge,24,三态):中断响应信号输出引脚,低电平有效,该引脚是CPU响应中断请求后,向中断源发出的认可信号,用以通知中断源。ALE(AddressLockEnable,25):地址锁存允许输出信号引脚,高电平有效,CPU通过该引脚向地址锁存器发出地址锁存允许信号,把当前地址/数据复用总线上输出的地址信息,锁存到地址锁存器中去。ALE信号不能被空置。最小/大模式31左旭坤(zxk78@)8086/8088微处理器——微处理器的引脚功能思考题:1、什么是总线分时复用?如何利用ALE引脚信号解决8086CPU的数据地址信息分时复用问题?2、简单介绍8086CPU的READY引脚功能。3、8086CPU的时钟信号从哪个引脚输入,对时钟信号有什么要求?4、8086CPU的复位信号从哪个引脚输入?对复位信号有什么要求?CPU复位后对寄存器有什么影响?5、8086CPU的中断请求信号有几种?分别从哪些引脚输入?6、简述INTA引脚的功能。32左旭坤(zxk78@)8086/8088微处理器——微处理器的引脚功能8086引脚结构M/IO(Memory/Input&Output,28,三态):

存储器或I/O端口选择信号输出引脚,这是CPU区分进行存储器访问还是I/O访问的输出控制信号。WR

(Write,29,三态):写控制信号输出引脚,低电平有效,与M/IO配合实现对存储单元、I/O端口所进行的写操作控制。

例:简述M/IO、RD和WR引脚在不同读写操作时的信号组合。读内存:M/IO=1RD=0WR=1写内存:M/IO=1RD=1WR=0读外设:M/IO=0RD=0WR=1写外设:M/IO=0RD=1WR=033左旭坤(zxk78@)第二章:8086/8088微处理器8086CPU内部结构8086CPU引脚8086CPU的工作时序

34左旭坤(zxk78@)8086/8088微处理器——微处理器的时序什么是时序???——时序是计算机执行某项工作时,各引脚的有效信号及时间顺序。

为什么要研究时序???——合理设计系统的软硬件。35左旭坤(zxk78@)8086/8088微处理器——微处理器的时序几个关于时间的基本概念指令周期:执行一条指令所需的时间。不同指令的指令周期是不同的。总线周期:是指CPU与存储器或外设进行一个字节的数据传送所需要的时间。时钟周期:又称为T状态,是一个时钟脉冲的重复周期,是CPU处理动作的基本时间单位。它是由主频来确定,如8086的主频为5MHz,则一个时钟周期为200ns。例:最短指令:寄←寄,只需要2个时钟周期.

最长指令:16位乘、除,约需200个时钟周期.每个总线周期至少包含4个T状态(4个时钟周期),分别记做:T1、T2、T3、和T4;一个指令周期由一到几个总线周期组成。一个T状态就是一个时钟周期,是CPU处理动作的最小单位。36左旭坤(zxk78@)8086/8088微处理器——微处理器的时序几个基本概念等待周期TW:是在一个总线周期的T3和T4之间,CPU根据Ready信号来确定是否插入TW,插入几个TW(一个Tw=T)。空闲周期Ti

:即两次总线周期的时间间隔。当CPU的指令队列已满,且EU无读写总线操作,此时进入空闲周期,直至下一次总线周期到来(一个Ti=T)

。37左旭坤(zxk78@)8086/8088微处理器——微处理器的时序8086微机系统的主要操作(最小模式)系统读/写操作(总线操作);8086CPU读操作时需要用到的引脚:M/IOA19/S6~A16/S3AD15~AD0BHE/S7存储器或I/O端口选择信号输出引脚,这是CPU区分进行存储器访问还是I/O访问的输出控制信号。地址/状态复用信号输出引脚,分时输出地址的高4位及状态信息,地址/数据复用信号输入/输出引脚,分时输出低16位地址及进行数据的输入/输出。高8位数据允许/状态复用信号输出引脚。分时输出BHE和S7信号,BHE=0表示高8为数据线D15—D8上的数据有效;38左旭坤(zxk78@)最小模式下的8086时序8086的读周期时序8086CPU读操作时需要用到的引脚:ALERD地址锁存允许输出信号引脚,高电平有效,CPU通过该引脚向地址锁存器发出地址锁存允许信号,把当前地址/数据复用总线上输出的地址信息,锁存到地址锁存器中去。读控制输出信号引脚,低电平有效,用以指明要执行一个对内存单元或I/O端口的读操作,具体是读内存单元还是I/O端口,取决于控制信号。READYCPU与内存或I/O进行数据传递时,如果内存或I/O速度较慢,则向CPU的READY引脚发送一个低电平,让CPU等待一段时间。当内存或I/O完成工作后,再重新向READY引脚发送一个高电平,告诉CPU已“准备好”39左旭坤(zxk78@)①②②③④T1状态(时间):②AD15~AD0输出数据地址低16位②A19/S6~A16/S3输出数据地址高4位③ALE输出正脉冲,当ALE由高变低(下降沿)时,锁存器将复用线上的地址锁存④

BHE/S7变低,与A0一起控制数据从高/低位传递①M/IO变高表示读存储器,变低表示读I/O8086的读周期时序(CPU外设/内存)40左旭坤(zxk78@)①②③T2状态(时间):②AD15~AD0转为高阻,为传送数据做准备③RD变低,CPU向外设/内存发出读数据信号①A19/S6~A16/S3

输出状态信号S6~S38086的读周期时序41左旭坤(zxk78@)①T3状态(时间):①

AD15~AD0内存或外设开始向CPU总线发送数据8086的读周期时序42左旭坤(zxk78@)Tw状态(时间):如果外设或速度比较慢,在T3状态不能完成数据传递工作,则需要向CPU的READY引脚发出一个低电平,让CPU等待。8086的读周期时序当CPU在T3状态检测到READY引脚上的低电平时,就会插入一个或多个Tw状态,等待外设或外设完成全部数据传送。43左旭坤(zxk78@)T4状态(时间):①READY变高说明内存或外设已完成数据发送工作,数据已出现在数据总线上①②②

AD15~AD0CPU接收到READY引脚上的高电平信号,则开始从总线上接收数据。8086的读周期时序44左旭坤(zxk78@)808

温馨提示

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

评论

0/150

提交评论