




已阅读5页,还剩177页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第2章16位微处理器,2,2.116位微处理器概述,微处理器(microprocessor)微处理器(microprocessor)是微型计算机的运算及控制部件,也称中央处理单元(CPU)。它本身不构成独立的工作系统,因而它也不能独立地执行程序。CPU功能:指令控制;操作控制;时序控制;数据加工,3,8086特点:(1)数据总线宽度16位,地址总线宽度20位;可直接寻址空间2201M字节单元;16位数据总线与地址总线复用。(2)采用单一的+5V电源,时钟频率为5MHz(8086),10MHz(80861),8MHz(80862)(3)133条指令,指令长度16字节,4,8086与8088的比较,8086为16位机(数据总线16位),8088为准16位机,数据总线内部16位,外部8位,8086和8088CPU的内部都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同。然而,由于8088要比8086有较多的外部存取操作,所以,对相同的程序,它将执行得较慢。,8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。,5,后面课程中将要用到的概念,概念一:寄存器简单的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。8086CPU所有的寄存器都是16位的,可以存放两个字节。AX是其中一个寄存器的代号,BX是另一个寄存器的代号。,一个16位寄存器所能存储的数据的最大值为多少?答案:216-1。,6,16位数据在寄存器中的存放情况,【例1】数据:18二进制表示:10010在寄存器AX中的存储:,7,16位数据在寄存器中的存放情况【例2】数据:20000二进制表示:0100111000100000在寄存器AX中的存储:,8,概念二:存储器CPU是计算机的核心部件它控制整个计算机的运作并进行运算,要想让一个CPU工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是平时所说的内存。在一台PC机中内存的作用仅次于CPU。离开了内存,性能再好的CPU也无法工作。磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU使用。,9,概念三:存储单元(每一个存储单元有一个名字,叫地址)存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号;例如:一个存储器有128个存储单元,编号从0127。如右图示:,10,神马是物理地址?CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。,11,概念四:CPU对存储器的读写,CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行三类信息的交互:存储单元的地址(地址信息)器件的选择,读或写命令(控制信息)读或写的数据(数据信息),在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。物理上:一根根导线的集合;逻辑上划分为:地址总线:CPU是通过地址总线来指定存储单元的。数据总线:CPU是通过数据总线来读写数据。控制总线,12,概念五:地址总线,地址总线:CPU是通过地址总线来指定存储单元的。一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找的N次方个内存单元。,13,地址总线发送地址信息演示,14,概念六:数据总线,CPU与内存或其它器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。我们来分别看一下它们向内存中写入数据89D8H时,是如何通过数据总线传送数据的:,15,8位数据总线上传送的信息,8088CPU,16,16位数据总线上传送的信息,8086CPU,17,控制总线上发送的控制信息,18,概念七:控制总线,CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合。有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。所以,控制总线的宽度决定了CPU对外部器件的控制能力。,19,总线在逻辑上划分的图示:,20,概念八:CPU在内存中读数据,MOVAX,3,21,概念九:CPU在内存中写数据,22,前面所讲的内存读或写命令是由几根控制线综合发出的:其中有一根名为读信号输出控制线负责由CPU向外传送读信号,CPU向该控制线上输出低电平表示将要读取数据;有一根名为写信号输出控制线负责由CPU向外传送写信号。,23,概念十:堆栈(STACK),是按后进先出原则组织的一片存储区域,用来暂存一批需要回避的数据或地址。,“后进先出”,堆栈:,暂存数据、断点信息或传送信息,用途:,存取原则:,8086堆栈段的最大深度:,64KB,24,入栈的方式,25,出栈的方式,26,一端固定,具有最大地址的单元(数据由此向上堆积),一端浮动,指向最后被压入堆栈的数据所在存储单元(栈顶的位置随堆栈中存放数据多少而变化),用来指示当前栈顶的位置。(压入的数据放入哪个单元或从那个单元弹出数据均由SP决定,SP,栈底:,栈顶:,堆栈指针:,SP称为堆栈指针寄存器,27,8086堆栈的组织,该片存储区域所包含存储单元数,其值有由初始时SP的值决定(指向栈底+1单元),堆栈段:,由SS存放堆栈段段基值以决定其起始地址,堆栈段的长度:,8086堆栈是按字组织的,数据的存取均为2字节操作,数据在堆栈段内的存放,28,堆栈的三种基本操作,SS、SP赋值(段的起始位置及长度),SP-2SP;栈顶向上浮动数据(SS:SP),(SS:SP)R/M(寄存器、存储器)SP+2SP数据;栈顶向下回落,1、设置堆栈,2、进栈,把数据压入堆栈,在栈顶进行,3、出栈,从栈顶取出数据送入R/M,29,SP和BP在使用上有区别:,执行入栈和出栈时,指令地址是由SP给出当前栈顶的偏移地址,故将SP称为堆栈指针寄存器。,BP称作基址指针寄存器。BP则是用来存放位于堆栈段中的一个数据区基址的偏移地址的可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。,30,概念十一:内存地址空间,什么是内存地址空间呢?一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。,31,概念十二:内存中字的存储,在0地址处开始存放十进制数20000(十六进制为4E20H):0号单元是低地址单元,1号单元是高地址单元。,问题:(1)0地址单元中存放的字节型数据是多少?(2)0地址字单元中存放的字型数据是多少?(3)2地址字单元中存放的字节型数据是多少?(4)2地址单元中存放的字型数据是多少?(5)1地址字单元中存放的字型数据是多少?,结论:任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元。,32,2.28086/8088CPU的结构,执行部件(EU)总线接口部件(BIU),内部寄存器算术逻辑运算单元(ALU)及标志寄存器内部控制逻辑电路,段地址寄存器(CS、DS、SS、ES)地址加法器指令指针寄存器(IP)指令队列I/O控制逻辑,2.2.18086基本结构,33,34,(1)执行部件(EU),功能:负责指令执行。接受从总线接口单元的指令队列中取来的指令代码,译码和向EU内各有关部分发出时序命令信号,协调执行指令规定的操作。EU的组成:4个通用寄存器,即AX,BX,CX,DX;4个专用寄存器,SI(SourceIndex):源变址寄存器DI(DestinationIndex):目的变址寄存器BP(BasePointer):基址指针SP(StackPoint):堆栈指针标志寄存器(FR),微处理器状态字(ProcessorStateWord,PSW)算术逻辑部件(ALU)。,35,(2)总线接口部件BIU,功能:负责与M、I/O端口传送数据。具体讲:总线接口部件要从内存取指令送到指令队列;CPU执行指令时,要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件EU;或把执行部件的操作结果传给指定的M或I/O口。主要组成:4个段地址寄存器,即CS16位代码段寄存器;DS16位数据段寄存器;ES16位附加段寄存器;SS16位堆栈段寄存器。16位指令指针寄存器IP。20位的地址加法器。6字节的指令队列。I/O控制逻辑,36,总线接口部件BIU,8086的指令队列为6个字节,8088的指令队列为4个字节。不管是8086还是8088,都会在执行指令的同时,从内存中取下一条指令或下几条指令,取来的指令就放在指令队列中。,指令队列,地址加法器用来产生20位物理地址。8086可用20位地址寻址1M字节的内存空间,但8086内部所有的寄存器都是16位的,所以需要由一个附加的机构来根据16位寄存器提供的信息计算出20位的物理地址,这个机构就是20位的地址加法器。,地址加法器,37,I/O控制逻辑是CPU外部三总线(AB、DB、CB)的控制电路,它控制CPU与其他部件交换数据、地址、状态及控制信息。,38,EU部件与BIU部件,EU和BIU之间是通过指令流队列相互联系的。EU和BIU的联系上的不同步性:,在执行指令的过程中,如果必须访问存储器或者输入输出设备,那么,执行部件就会请求总线接口部件,进入总线周期,完成访问内存或者输入输出端口的操作;如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。,指令队列空余时的填充,当指令队列已满,而且执行部件又没有总线访问时,总线接口部件便进入空闲状态。,在执行转移指令、调用指令和返回指令时,指令队列中的原有内容被自动消除,总线接口部件会接着往指令队列中装入另一个程序段中的指令。,39,2.2.28086的寄存器结构,40,(一)通用寄存器(8个),(1)数据寄存器AX、BX、CX、DX作为通用寄存器。,功能:用来暂存计算过程中所用到的操作数,结果或其它信息,四个通用数据寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8为寄存器。用作8位寄存器分别记作:AH、AL、BH、BL、CH、CL、DH、DL。,BX可用作间接寻址的地址寄存器和基地址寄存器,BH、BL可用作8位通用数据寄存器。,有些指令约定以AX(或AL)为源或目的寄存器。,AX(AH,AL)累加器,BX(BH,BL)基址寄存器,41,除用作通用寄存器外,在I/O指令中可用作端口地址寄乘除指令中用作辅助累加器。,CX(CH,CL)计数寄存器,DX(DH,DL)数据寄存器,CX在循环和串操作中操作中充当计数器,指令执行后CX内容自动修改。,42,以AX为例,8086CPU的16位寄存器分为两个8位寄存器的情况:AX的低8位(0位7位)构成了AL寄存器,高8位(8位15位)构成了AH寄存器。AH和AL寄存器是可以独立使用的8位寄存器。一个8位寄存器所能存储的数据的最大值是多少?答案:28-1。,43,8086CPU的8位寄存器数据存储情况:,44,(2)地址指针与变址寄存器:SP、BP、SI、DI地址指针和变址寄存器BP(BasicPointerRegister)基址指针寄存器SP(StackPointerRegister)堆栈指针寄存器SI(SourceIndexRegister)源变址寄存器。DI(DestinationIndex)目的变址寄存器在数据串操作中,SI与DS联用,DI与ES联用,45,(二)段寄存器(4个),CSCodeSegmentRegister代码段寄存器用来识别当前代码段(程序一般放在代码段)。,段寄存器:4个16位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。,DSDataSegmentRegister数据段寄存器用来识别当前数据段寄存器。,SSStackSegmentRegister堆栈段寄存器,用来识别当前堆栈段。,ESExtraSegmentRegister附加段寄存器,用来识别当前附加段。,46,(三)控制寄存器:IP、FLAG,(1)IPInstructionPointer指令指针寄存器用来存储代码段中的偏移地址;程序运行过程中IP始终指向下一次要取出的指令偏移地址;IP要与CS寄存器相配合才能形成真正的物理地址。(2)标志寄存器(FlagRegister)共有16位,其中7位未用。标志寄存器内容如图:,47,状态标志共包括6位:CF、PF、AF、ZF、SF、OF。,对控制标志位进行设置后,对其后的操作起控制作用。,状态标志:,用来记录程序中运行结果的状态信息作为后续条件转移指令的转移控制条件,也称为状态标志。,控制标志:,控制标志位包括3位:TF、IF、DF,48,状态标志,CF(CarryFlag)进位标志-反映在运行结果的最高位有无进位或错位。PF(ParityFlag)奇偶标志-反映运算结果中“1”的个数的奇偶性,主要用于判断数据传送过程中是否出错。AF(AuxiliaryFlag)辅助进位标志-加减运算时,若D3向D4产生了进位或错位则AF=1。否则AF=0。在BCD码运算时,该标识用于十进制调整。,49,-反映计算结果是否为0。若结果为零则ZF=1,否则ZF=0。SF(SignFlag)符号标志-反映计算结果最高位及符号位的状态。如果运算结果的最高位为1则SF=1(对带符号数即为负数),否则SF=0(对带符号数即为正数)。OF(OverflowFlag)溢出标志-反映运算结果是否超出了带符号数的表数范围。,ZF(ZeroFlag)零进位,50,控制标志,共3位,用于控制机器或程序的某些运行过程。,DF(DirectionFlag)方向标志-用于串处理指令中控制串处理的方向。IF(InterruptFlag)中断允许标志-用于控制CPU是否允许相应可屏蔽中断请求。TF(trapflag)陷阱标志-用于单步操作。,51,检测点1,请默写出8086的寄存器结构(14个寄存器)指出标志寄存器各位作用,52,8086存储器的逻辑地址和物理地址,存储器中的每个存储单元都可以用两个形式的地址来表示:实际地址(或称物理地址)和逻辑地址。实际地址:也称物理地址,是用唯一的20位二进制数所表示的地址,规定了1M字节存储体中某个具体单元的地址。逻辑地址在程序中使用,即段地址:偏移地址。物理地址的形成物理地址有两部分组成:段基址和偏移地址。,53,8086CPU给出物理地址的方法(1),8086有20位地址总线,可传送20位地址,寻址能力为1M。8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。解决方法:8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。地址加法器合成物理地址的方法:物理地址=段地址16+偏移地址,54,8086CPU给出物理地址的方法(2),8086/8088CPU中有一个地址加法器,它将段寄存器提供的段地址自动乘以10H即左移4位,然后与16位的偏移地址相加,并锁存在物理地址锁存器中。如图所示。物理地址=段基址*16+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BP、SP、BX,55,由段地址16引发的讨论,观察移位次数和各种形式数据的关系:(1)一个数据的二进制形式左移1位,相当于该数据乘以2;(2)一个数据的二进制形式左移N位,相当于该数据乘以2的N次方;(3)地址加法器如何完成段地址16的运算?以二进制形式存放的段地址左移4位。,56,57,段的概念,内存并没有分段,段的划分来自于CPU,由于8086CPU用“(段地址16)+偏移地址=物理地址”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。在编程时可以根据需要,将若干地址连续的内存单元看作一个段,用段地址16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。两点需要注意:(1)段地址16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;(2)偏移地址为16位,16位地址的寻址能力为64K,所以一个段的长度最大为64K。,58,内存单元地址小结(1),CPU访问内存单元时,必须向内存提供内存单元的物理地址。8086CPU在内部用段地址和偏移地址移位相加的方法形成最终的物理地址。例1:CPU可以用不同的段地址和偏移地址形成同一个物理地址。,59,内存单元地址小结(2),例2:如果给定一个段地址,仅通过变化偏移地址来进行寻址,最多可以定位多少内存单元?【结论】偏移地址16位,变化范围为0FFFFH,仅用偏移地址来寻址最多可寻64K个内存单元。比如:给定段地址1000H,用偏移地址寻址,CPU的寻址范围为:10000H1FFFFH。,60,内存单元地址小结(3),例3:在8086PC机中,存储单元的地址用两个元素来描述。即段地址和偏移地址。“数据在21F60H内存单元中。”对于8086PC机的两种描述:(a)数据存在内存2000:1F60单元中;(b)数据存在内存的2000段中的1F60H单元中。可根据需要,将地址连续、起始地址为16的倍数的一组内存单元定义为一个段。,61,8086读取和执行指令(1),8086PC工作过程的简要描述(1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;(2)IP=IP+所读取指令的长度,从而指向下一条指令;(3)执行指令。转到步骤(1),重复这个过程。注意:在8086CPU加电启动或复位后(即CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H,即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。,62,8086读取和执行指令(2),63,关于CS和IP,内存中指令和数据没有任何区别,都是二进制信息,CPU在工作的时候把有的信息看作指令,有的信息看作数据。CPU根据什么将内存中的信息看作指令?CPU将CS:IP指向的内存单元中的内容看作指令。说明:在任何时候,CPU将CS、IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,到内存中读取指令码,执行。如果说,内存中的一段信息曾被CPU执行过的话,那么,它所在的内存单元必然被CS:IP指向过。,64,如何改变CS、IP的值?,在CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制。CPU从何处执行指令是由CS、IP中的内容决定的,程序员可以通过改变CS、IP中的内容来控制CPU执行目标指令。我们如何改变CS、IP的值呢?,8086CPU必须提供相应的指令先回想我们如何修改AX中的值?mov指令不能用于设置CS、IP的值,8086CPU没有提供这样的功能。8086CPU为CS、IP提供了另外的指令来改变它们的值:转移指令(后讲),65,2.2.3存储器结构,8086/8088CPU能寻址1M字节的存储单元,以8位为一个字节的顺序排列存放。每一个字节用一个唯一的地址码标示地址码为一个不带符号的整数表示,范围从0到220-1,习惯用十六进制表示,即00000HFFFFFH。将存储器空间按照字节地址号顺序排列的方式称作“字节编址”。,66,存储器字节编址,67,20位物理地址的形成,68,存储器的分段,根据各段的用途将其定义为CS、DS、ES、SS段。并用偏移地址(距段起址的字节距离)表示被访问单元。,每段最长可达64K字节,各段起始地址能被16整除。(低4位为0),各段之间可分开、部分或完全重叠、可首尾相接。,69,段地址,每一个段首地址的低4位是”0”,段首地址的高16位称为“段基址”,也称段地址,段地址一般存放在段寄存器DS,CS,SS,ES,偏移地址,每一个段的容量:64KB(0000HFFFFH),偏移地址是指一个段内的存储空间相对于段基地址的偏移,段内偏移地址一般存放在IP,SP,70,存储器中的逻辑地址和物理地址,任何一个存储单元对应一个20位的物理地址,也可称为绝对地址,它是由逻辑地址变换得来的。当CPU需要访问存储器时,必须完成如下的地址运算:,任何一个逻辑地址由段基址和偏移地址两个部分构成,它们都是无符号的16位二进制数。,逻辑地址的表示:段地址:偏移地址,对应于同一物理地址,可以有不同的逻辑地址,物理地址=段地址16+偏移地址,物理地址是唯一的,要分清段内偏移地址的来源,及其相匹配的段地址,71,例1:已知某存储单元所在的段地址为0AC08H,偏移地址为2596H,试求出该单元所在的物理地址?,例2:已知CS、DS、SS和SS分别为1055H,250AH,8FFBH和EFF0H,试分析它们在存储器中的分布情况。,72,指令程序一般存放在代码段(CS)中,段地址来源于代码段寄存器,偏移地址来源于指令指针IP,即,4个段寄存器分别指向4个分段的起始字节单元,指令程序的物理地址=(CS)*16+(IP),进行堆栈操作时,段地址寄存器为SS,偏移地址来源于栈指针寄存器SP,即,堆栈地址=(SS)*16+(SP),对于操作数,则由数据段寄存器DS或附加段寄存器ES作为段寄存器,而偏地址取决于指令的寻址方式。,73,例,在8086CPU中,设某段寄存器的内容为1000H,试确定由该段寄存器所决定的内存段的起始地址和终止地址,在8086CPU中,CS寄存器和IP寄存器的内容分别如下,试确定由CS和IP指定的内存指令地址(1)CS=1000HIP=2000H(2)CS=1234HIP=ABCDH,解:10000H1FFFFH,解:1)1000H*16+2000H=12000H,2)1234H*16+ABCDH=1CF2DH,74,按信息的分段存储和分段寻址,在存储器中存储的信息可以分为程序指令、数据、和计算机系统的状态等信息,为了寻址和操作的方便,存储器的空间可按信息特征进行分段存储。,一般将存储器划分为程序区、数据区、和堆栈区。,程序区中存储程序的指令代码,堆栈区存储压入堆栈的数据和状态信息,数据区中存储原始数据、中间结果和最后结果,75,数据段寄存器DS和附加段寄存器ES存储源和目的数据区段的段地址;,80868088CPU中通常按照信息特征来区分段寄存器的作用,如:,代码段寄存器CS存储程序存储器区的段地址;,堆栈段寄存器SS存储堆栈区的段地址,80868088中设置四个段寄存器的目的除了可以扩充寻址的范围以外,还便于存储器的读写操作,76,在执行程序时CS指定程序的段地址,IP作为程序段内的偏移量来控制取指令的地址。,1、对程序区的访问,为程序单独划开的存储器区称为程序存储区。,当前取指令的物理地址代码段寄存器CS的内容左移四位加上指令指针IP的内容。,77,堆栈操作所指的物理地址堆栈段寄存器内容左移四位后加上堆栈指针的内容,2、堆栈区的操作,不同的任务程序区往往要求有对应的堆栈区,以便在执行程序时进行各自的堆栈操作。,程序更新时,堆栈区也随之更新,这就需要指定堆栈段寄存器SS。,78,不同任务的程序一般有与之对应的数据区,在执行指令时对区内的数据进行操作,需要设置数据段寄存器DS,3、数据区,实际操作的物理地址数据段寄存器的内容左移四位,加上基地址寄存器BX或通过寻址获得的有效地址EA。,79,字符串操作时,一般是对存储器中的两个数据块进行传送,需要在一条指令中同时指定源和目的两个数据区。,4、字符串操作,需要分别使用数据段寄存器DS和附加段寄存器ES分别指定源数据区和目的数据区的段地址,用SI和DI变址寄存器指明段内偏移量。,80,表中所示的访问存储器时所使用的段地址可以由指令中隐含的段寄存器提供,也可以由“可更换的段寄存器”提供。,访问存储器时使用的段地址寄存器和偏移地址寄存器,段寄存器DS、SS、ES的内容可以通过传送类指令置入或者进行变更,但代码段寄存器不同,它的内容是当前程序指令字节地址的一部分,只能通过JMP、CALL、RET、INT和IRET等指令来改变。,段内偏移地址的来源除IP、SP、SI和DI外,还可以由寻址方式求得的EA确定,81,可更换的段寄存器,82,检测点2,1、程序计数器PC是()A.指令部件B.程序状态寄存器C.指令寄存器D.时序部件2、状态寄存器中的各个状态标志位是根据()来置标志位的。A.ALU上一次的运算结果B.CPU将要执行的指令C.CPU已经执行的指令D.累加器中的数据3、存放CPU将要执行的下一条指令地址的寄存器是()A.地址寄存器B.程序计数器C.数据寄存器D.指令寄存器,答案:1、A2、A3、B,83,4、8086是()位的微处理器。A.8B.16C.32D.645、微型计算机的字长取决于()的宽度。A.控制总线B.地址总线C.数据总线D.通信总线6、8086/8088CPU的()寄存器可以用作8位或16位的寄存器。A.SIB.SPC.IPD.CX7、8088CPU内部的数据总线有()条。A.8B.16C.20D.32,答案:4、A5、C6、D7、B,84,8、若访问存储器时使用BP寻址,则默认的段寄存器是()A.CSB.ESC.DSD.SS9、8086的BIU中有一个_位的指令指针,_位的地址加法器。10、当8086进行堆栈操作时,会自动选择_值作为段基址,再加上由_提供的偏移量形成物理地址。,答案:8.D9.16、2010.SS、SP,85,118086/8088系统中,可以有_个段起始地址,任意相邻的两个段起始地址相距_个存储单元。12用段基值及偏移量来指明内存单元地址的方式称为_。138086CPU使用_根地址线访问I/O端口,最多可访问_个字节端口,使用_根地址线访问存储单元,最多可访问_个字节单元。,答案:11.64K、1612.逻辑地址13.16、64K、20、1M,86,2.2.48086的总线周期,什么是总线操作?总线操作是指CPU通过总线对外的各种操作。8088的总线操作主要有:(1)存储器读、I/O读操作(2)存储器写、I/O写操作(3)中断响应操作(4)总线请求及响应操作,87,(一)时序,时序(Timing):(1)是指信号高低电平(有效或无效)变化及相互间的时间顺序关系。(2)总线时序描述CPU引脚如何实现总线操作。(3)CPU时序决定系统各部件间的同步和定时,描述总线操作的微处理器时序有三级:,指令周期,总线周期,时钟周期,什么是指令、总线和时钟周期?,88,(二)指令、总线和时钟周期的概念,指令周期是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期,总线周期是指CPU通过总线操作与外部(存储器或I/O端口)进行一次数据交换的过程,8088的基本总线周期需要4个时钟周期:4个时钟周期编号为T1、T2、T3和T4总线周期中的时钟周期也被称作“T状态”,时钟周期是CPU的基本时间计量单位,由计算机的主频决定。时钟周期的时间长度就是时钟频率的倒数,89,基本总线周期由4个T状态组成:T1、T2、T3、T4,等待时钟周期Tw,在总线周期的T3和T4之间插入(实现同步),空闲时钟周期Ti,在两个总线周期之间插入,90,(三)何时有总线周期?,任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码,任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期,只有执行IN指令才出现I/O读总线周期,执行OUT指令才出现I/O写总线周期,CPU响应可屏蔽中断时生成中断响应总线周期,91,(四)总线周期每个T状态,-CPU向多路复用总线上发送地址信息,指出要寻址的内存单元地址或I/O端口地址。T2状态:-CPU从总线上撤消地址,使总线低16位呈现高阻状态,为数据传输作准备。T3状态:-A19A16上状态信息不变,总线低16位上出现CPU要写出的数据或准备读入的数据。T4状态:-总线周期结束,若为总线周期则在T4前沿将数据读入CPU。,T1状态,:,92,总线读写周期演示,93,(五)总线操作的同步,CPU总线周期采用同步时序(需要等待):,总线操作中如何实现时序同步是关键,各部件都以系统时钟信号为基准当相互不能配合时,快速部件(CPU)插入等待状态等待慢速部件(I/O和存储器),CPU与外设接口常采用异步时序,它们通过应答联络信号实现同步操作(不需要等待),94,检测点3,18086/8088CPU执行指令中所需操作数地址由计算出_位偏移量部分送BIU,由_最后形成一个_位的内存单元物理地址。2CPU取一条指令并执行该指令的时间称为_周期,它通常包含若干个_周期,而后者又包含有若干个_周期。,答案:1.EU、16、BIU、202.指令、总线、时钟,95,2.38086CPU的引脚信号和工作模式,两种组态构成两种不同规模的应用系统最小组态模式系统只有一个微处理器8086,构成小规模的应用系统8086本身提供所有的系统总线信号最大组态模式例如可以接入数值协处理器8087,构成较大规模的应用系统.8086和总线控制器8288共同形成系统总线信号,96,2.3.18086的引脚,外部特性表现在其引脚信号上,特别关注以下几个方面:引脚的功能指引脚信号的定义、作用;通常采用英文单词或其缩写表示。信号的流向信号从芯片向外输出,还是从外部输入芯片,或者是双向的。有效电平起作用的逻辑电平(高、低电平有效)或者(上升、下降边沿有效)。三态能力输出正常的低电平、高电平外,还可以输出高阻的第三态。,97,HOLD(RQ/GT0),HLDA(RQ/GT1),98,最小模式下8086引脚的分类,数据和地址引脚读写控制引脚中断请求和响应引脚总线请求和响应引脚其它引脚,(最大模式引脚为括号中的),99,(1)数据和地址引脚,AD15AD0(Address/Data)(1)地址/数据分时复用引脚,双向、三态。(2)在访问存储器或外设的总线操作周期中,这些引脚在T1状态输出存储器或I/O端口的地址A15A0(3)其他时间用于传送数据D15D0A19/S6A16/S3(Address/Status)(1)地址/状态分时复用引脚,输出、三态(2)这些引脚在访问存储器的T1状态输出高4位地址A19A16(3)在访问IO外设的第一个时钟周期全部输出低电平无效(4)其他时间输出状态信号S6S3,100,注:S6总是低电平,以表示8086/8088CPU当前连在总线上;S5表明中断允许状态位IF的当前设置;S4和S3表示当前访问存储器所使用的段寄存器.,101,(1)数据和地址引脚续(1),BHE*/S7(bushighenable/status7)(1)高8位数据允许,在总线周期的T1状态,8086在BHE*S7引脚输出BHE信号,表示高8位数据总线D15D8上的数据有效。(2)在T2,T3,TW和T4状态,BHE*S7引脚输出状态信号S7,但S7并未被赋予任何实际意义。(3)在DMA方式时,为高阻状态。(后讲),102,补充:8086存储器的分体结构(1),问题的提出:8位机(8088)的存储器地址空间和数据存储格式以字节(8bit)为单位组织存储器地址空间,访问一次存储器,获得一个字节的数据。而8086CPU的数据总线为16位,CPU除了可以对一个字节寻址外,还必须能进行一个字的读写。如何组织数据存储格式使CPU访问一次存储器,获得一个字的数据?,103,补充:8086存储器的分体结构(2),硬件条件:分成高低位库,104,补充:8086存储器的分体结构(3),105,补充:8086存储器的分体结构(4),106,补充:8086存储器的分体结构(5),数据存放格式条件:存储器二个连续字节组成一个字,一个字中的每一个字节都有各自的字节地址。存入时以低位字节在低地址,高位字节在高地址的次序存放,字单元的地址以低位地址表示。若要求8086在一个总线周期访问一个整字(16位)时,则该字的地址为偶地址(“对准字)。如果则该字的地址为奇地址(“非对准字”),则8086要用两个连续的总线周期访问一个整字,每个周期访问一个字节。,107,(2)读写控制引脚,ALE(AddressLatchEnable)(1)地址锁存允许,输出、三态、高电平有效(2)ALE引脚高有效时,表示复用引脚:AD15AD0和A19/S6A16/S3正在传送地址信息(3)由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来IO/M*(IO/Memory)(1)I/O或存储器访问,输出、三态(2)该引脚输出高电平时,表示CPU将访问I/O端口,这时地址总线A15A0提供16位I/O口地址(3)该引脚输出低电平时,表示CPU将访问存储器,这时地址总线A19A0提供20位存储器地址,108,(2)读写控制引脚续(1),WR*(Write)(1)写控制,输出、三态、低电平有效(2)有效时,表示CPU正在写出数据给存储器或I/O端口RD*(Read)(1)读控制,输出、三态、低电平有效(2)有效时,表示CPU正在从存储器或I/O端口读入数据,109,IO/M*、WR*和RD*是最基本的控制信号组合后,控制4种基本的总线周期:,(2)读写控制引脚续(2),110,(2)读写控制引脚续(3),READY(1)存储器或I/O口就绪,输入、高电平有效(2)在总线操作周期中,8086CPU会在第3个时钟周期的前沿测试该引脚如果测到高有效,CPU直接进入第4个时钟周期如果测到无效,CPU将插入等待周期Tw(3)CPU在等待周期中仍然要监测READY信号,有效则进入第4个时钟周期,否则继续插入等待周期Tw,111,(2)读写控制引脚续(4),DEN*(DataEnable)(1)数据允许,输出、三态、低电平有效(2)有效时,表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动DT/R*(DataTransmit/Receive)(1)数据发送/接收,输出、三态(2)该信号表明当前总线上数据的流向(3)高电平时数据自CPU输出(发送)(4)低电平时数据输入CPU(接收),112,(3)中断请求和响应引脚,INTR(InterruptRequest)(1)可屏蔽中断请求,输入、高电平有效(2)有效时,表示请求设备向CPU申请可屏蔽中断(3)该请求的优先级别较低,并可通过关中断指令CLI清除标志寄存器中的IF标志、从而对中断请求进行屏蔽INTA*(InterruptAcknowledge)(1)可屏蔽中断响应,输出、低电平有效(2)有效时,表示来自INTR引脚的中断请求已被CPU响应,CPU进入中断响应周期(3)中断响应周期是连续的两个,每个都发出有效响应信号,以便通知外设他们的中断请求已被响应、并令有关设备将中断向量号送到数据总线,113,(3)中断请求和响应引脚续(1),NMI(Non-MaskableInterrupt)(1)不可屏蔽中断请求,输入、上升沿有效(2)有效时,表示外界向CPU申请不可屏蔽中断(3)该请求的优先级别高于INTR,并且不能在CPU内被屏蔽(4)当系统发生紧急情况时,可通过他向CPU申请不可屏蔽中断服务,主机与外设进行数据交换通常采用可屏蔽中断不可屏蔽中断通常用于处理掉电等系统故障,114,(4)总线请求和响应引脚,HOLD(1)总线保持(即总线请求),输入、高电平有效。(2)有效时,表示总线请求设备向CPU申请占有总线。(3)该信号从有效回到无效时,表示总线请求设备对总线的使用已经结束,通知CPU收回对总线的控制权。HLDA(HOLDAcknowledge)(1)总线保持响应(即总线响应),输出、高电平有效。(2)有效时,表示CPU已响应总线请求并已将总线释放。此时CPU的地址总线、数据总线及具有三态输出能力的控制总线将全面呈现高阻,使总线请求设备可以顺利接管总线。(3)待到总线请求信号HOLD无效时,总线响应信号HLDA也转为无效,CPU重新获得总线控制权。,DMA控制器等主控设备通过HOLD申请占用系统总线(通常由CPU控制),115,(5)其它引脚,RESET(1)复位请求,输入、高电平有效(2)该信号有效,将使CPU回到其初始状态;当他再度返回无效时,CPU将重新开始工作(3)8088复位后CS0FFFFH、IP0000H,所以程序入口在物理地址0FFFF0HCLK(Clock)(1)时钟输入,系统通过该引脚给CPU提供内部定时信号。(2)8086的时钟频率为:5MHz(8086)10MHz(80861)8MHz(80862),116,(5)其它引脚续(1),Vcc电源输入,向CPU提供5V电源GND接地,向CPU提供参考地电平MN/MX*(Minimum/Maximum)(1)工作模式选择,输入(2)接高电平时,8086引脚工作在最小模式;反之,8086工作在最大模式,117,(5)其它引脚续(2),TEST*(1)测试,输入、低电平有效;该引脚与WAIT指令配合使用(2)当CPU执行WAIT指令时,他将在每隔5个时钟周期对该引脚进行测试:如果无效,则程序踏步并继续测试;如果有效,则程序恢复运行也就是说,WAIT指令使CPU产生等待,直到引脚有效为止(3)在使用协处理器8087时,通过引脚和WAIT指令,可使8086与8087的操作保持同步,118,最大/最小工作模式区别:,119,最大模式引脚(1),8086的数据/地址等引脚在最大组态与最小组态时相同。有些控制信号不相同,主要是用于输出操作编码信号,由总线控制器8288译码产生系统控制信号:(1)S2*、S1*、S0*3个状态信号(2)LOCK*总线封锁信号(3)QS1、QS0指令队列状态信号(4)RQ*/GT0*、RQ*/GT1*2个总线请求/同意信号,120,最大模式引脚(2),QS1,QS0(InstructionQueueStatus)指令队列状态信号,输出。,121,最大模式引脚(3),2.S2#,S1#,S0#(三态):最大模式总线周期状态信号。作为总线控制器8288的输入信号,8288输出各种控制信号。,表S2#、S1#、S0#的代码组合操作,122,最大模式引脚(4),3.LOCK#(输出,三态):总线封锁信号。信号有效时不允许其他主控部件占用总线。4.RQ#/GT#0,RQ#/GT#1(双向):最大模式总线请求/总线响应信号,每条引线作为输入时是总线请求RQ信号,每条引线作为输出时是总线请求响应GT信号。,123,8086与8088的区别,8088的指令队列长度为4个字节,队列中出现1个空闲字节时,BIU自动访问存储器取指补充指令队列;8088的地址/数据复用线为8条,即AD7AD0,访问1个字需两个读写周期;8088中用IO/M*代替8086中的M/IO*8088中因为只能进行8位数据传输,BHE*就不需要了,改为SS0*,与DT/R*,IO/M*一起决定最小模式的总线周期操作。,124,8088最小模式的总线周期操作控制信号,125,“引脚”小结,CPU引脚是系统总线的基本信号可以分成三类信号:16位数据线:D0D1520位地址线:A0A19控制线:ALE、IO/M*、WR*、RD*、READYINTR、INTA*、NMI,HOLD、HLDARESET、CLK、Vcc、GND,126,提问之一:CPU引脚是如何与外部连接的呢?解答:总线形成提问之二:CPU引脚是如何相互配合,实现总线操作、控制系统工作的呢?解答:总线时序,127,2.3.2最小模式系统,最小模式系统(MN/MX引脚接+5V电源)特点:(1)系统中存储器芯片,I/O芯片不多;(2)20位地址总线由AD0AD15,A16/S3A19/S6通过8282锁存器构成;(3)16位数据总线直接由AD0AD15构成(也可加总线驱动8286);(4)控制总线由8086CPU的控制线提供,构成一小型、单处理机系统。,128,(1)8086最小组态系统配置图,129,130,(2)20位地址总线的形成,为什么需要锁存器?答:CPU与外部交换数据用到的引脚是分时复用的,因此需要锁存一些复用信号。采用3个8282进行锁存和驱动Intel8282是三态透明锁存器,类似Intel8283和通用数字集成电路芯片74LS373,131,Intel8282数据锁存器(1)STB选通信号引脚(2)OE*输出允许引脚,132,三态门三态门形成的锁存器是微机接口电路中最常用的逻辑器件。器件共用总线时,一般使用三态电路:需要使用总线的时候打开三态门;不使用的时候关闭三态门,使之处于高阻,三态门具有单向导通和三态的特性,133,T为低电平时:输出为高阻抗(三态)T为高点平时:输出为输入的反相,134,8282锁存器与8086的连接,135,(3)16位数据总线的形成,当系统中所连的存储器和外设较多时,需要增加数据总线的驱动能力,这时,要用两片82868287作为总线收发。采用数据收发器8286进行双向驱动。(注意与数据锁存器区别:数据锁存器为单向)Intel8286是8位三态双向缓冲器,类似功能的器件还有Intel8287、通用数字集成电路245等。另外,接口电路中也经常使用三态单向缓冲器,例如通用数字集成电路244就是一个常用的双4位三态单向缓冲器。,问题:8086需要两片8286收发器,8088需要几片?,136,Intel8286(8位双向缓冲器)控制端连接在一起,低电平有效可以双向导通输出与输入同相,137,双向三态缓冲器,OE*0,导通T1ABT0ABOE*1,不导通,138,(4)系统控制信号的形成,由8086引脚直接提供,因为基本的控制信号8086引脚中都含有M/IO*、WR*、RD*。M/IO及WR,RD信号,输出、三态。这三个信号组合决定系统中数据传出的方向。,表M/IO、RD及WR信号的功能,139,2.3.3最大模式系统(略),最大模式(组态)系统(MN/MX引脚接地)系统控制信号由总线控制器8288提供,用于多处理机和协处理机结构中。8288为总线控制器它根据CPU提供的S2,S1,S0信号产生各种总线控制信号。8089为总线裁决器用于裁决哪个处理器拥有对总线的使用权。,140,系统地址总线采用8282系统数据总线通过8286形成和驱动系统控制总线主要由总线控制器8288形成MEMR*、MEMW*、IOR*、IOW*、INTA*,141,8086最大组态系统配置图,142,8086最大模式构成(演示),143,S2、S1、S0来自8286CPU的状态信号。82
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文玩鉴定合同(2篇)
- 2025管理人员安全培训考试试题附参考答案(培优)
- 25年公司厂级员工安全培训考试试题附答案(培优)
- 2025房屋装修合同协议书(律达通):仿写版
- 2025关于展会招商代理合同的范本
- 2025办公设备购销合同范本
- 2025年签订技术服务合同的注意事项及合同条款解析
- 2025版合同解除协议范本
- 2025标准版城镇住宅购房合同
- 2025办公家具采购合同范本
- 2024年3月ITSMS信息技术服务管理体系基础(真题卷)
- 节能评审和节能评估文件编制费用收费标准
- 2023-2024年《劳务劳动合同样本范本书电子版模板》
- 中国居民口腔健康状况第四次中国口腔健康流行病学调查报告
- MOOC 数据挖掘-国防科技大学 中国大学慕课答案
- 中药注射剂合理使用培训
- 第13课+清前中期的兴盛与危机【中职专用】《中国历史》(高教版2023基础模块)
- 2024年国家粮食和物资储备局直属事业单位招聘笔试参考题库附带答案详解
- 苏轼临江仙课件大学语文完美版
- 《施工测量》课件
- 情绪健康管理服务规范
评论
0/150
提交评论