第4章 16位微处理器_1 - 副本_第1页
第4章 16位微处理器_1 - 副本_第2页
第4章 16位微处理器_1 - 副本_第3页
第4章 16位微处理器_1 - 副本_第4页
第4章 16位微处理器_1 - 副本_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

1、 第4章16位微处理器 本章以本章以1616位微处理器位微处理器8086/80888086/8088为中为中心,讲解微处理器的心,讲解微处理器的内部结构、地址内部结构、地址形成、内部寄存器、工作模式、总线形成、内部寄存器、工作模式、总线时序、总线操作时序、总线操作等主要内容。等主要内容。 在掌握在掌握8086CPU8086CPU的基础上,进一步理的基础上,进一步理解微处理器的工作原理以及与外部通解微处理器的工作原理以及与外部通讯联系的过程,为后面学习接口技术讯联系的过程,为后面学习接口技术做准备。做准备。BIU:Bus Interface Unit,总线接口部件,总线接口部件EU: Execu

2、tion Unit,执行部件,执行部件Stack:堆栈:堆栈NMI:Non-maskable Interupt,非屏蔽,非屏蔽中断中断INTR:Interupt Request,可屏蔽中断请,可屏蔽中断请求求主要内容主要内容16位微处理器概述8086/8088 CPU的结构8086/8088 CPU的引脚信号和工作模式8086/8088的主要操作功能微处理器微处理器(microprocessor)(microprocessor)是微型计算机的运算及控制部件,也称是微型计算机的运算及控制部件,也称中央处理单元中央处理单元(CPU)(CPU)。它本身不构成独立的工作系统,因而它也。它本身不构成独立

3、的工作系统,因而它也不能独立地执行程序不能独立地执行程序。n微处理器微处理器(microprocessor(microprocessor)指令控制;操作控制;时序控制;数据处理指令控制;操作控制;时序控制;数据处理nCPU功能:功能:n数据总线宽度数据总线宽度1616位,地址总线宽度位,地址总线宽度2020位;可直接寻址空间位;可直接寻址空间2 220201M1M字字节单元;节单元;1616位数据总线与地址总线复用位数据总线与地址总线复用n8086概况:概况:n19791979年推出,第一代超大规模集成电路(年推出,第一代超大规模集成电路(VLSIVLSI)微处理器,采用)微处理器,采用HMO

4、SHMOS工艺制造,内含工艺制造,内含2.92.9万晶体管万晶体管 ( (酷睿酷睿i7 i7 39亿个晶体管亿个晶体管)n采用单一的采用单一的+5V+5V电源,一相时钟,时钟频率为电源,一相时钟,时钟频率为 5MHz5MHz(80868086),),10MHz10MHz(808680861 1),),8MHz8MHz(808680862 2)n133133条指令,指令长度条指令,指令长度1 16 6字节,指令最短执行时间为字节,指令最短执行时间为0.4us0.4us(平均(平均0.5us0.5us)8086为为16位机位机(数据总线数据总线16位位)n8086与与8088的比较的比较n8088

5、为准准16位机位机,数据总线内部16位,外部8位.n8086和8088 CPU的内部都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同。然而,由于8088要比8086有较多的外部存取操作,所以,对相同的程序,它将执行得较慢。n8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。1 2 3 4 内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外部总线外部总线执行部分执行部分控制电路控制电路ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP

6、BP SI DI通用通用寄存器寄存器地址地址加法加法器器指令队列指令队列执行部件执行部件 (EU)总线接口部件总线接口部件 (BIU)16位位20位位8位位8位位8086CPU8086CPU的内部结构的内部结构ALU数据总线队列总线1 2 3 4 5 6 1、EU (Execution Unit)1)、)、 功能功能:负责指令执负责指令执行。行。接受接受从总线接口单元的从总线接口单元的指令队列指令队列中取来的指令代码中取来的指令代码,其译码和向,其译码和向 EU 内各有关部分内各有关部分发出时序命令发出时序命令信号信号,协调执行指令规定的操作协调执行指令规定的操作。包含:包含:ALU, 反应反

7、应CPU状态和控状态和控制标志的状态标志寄存器制标志的状态标志寄存器FLAGS, 一组通用寄存器,运算一组通用寄存器,运算寄存器,和寄存器,和EU控制系统。控制系统。 进行算数逻辑运算,进行算数逻辑运算, 计算存储操作数的偏移地址。计算存储操作数的偏移地址。2、总线接口单元、总线接口单元 BIU (Bus Interface Unit) 1) 功能:功能:负责与负责与 M、I/O 端端口传送数据口传送数据。具体讲:具体讲: 总线接口部件要从内存总线接口部件要从内存 取取指令送到指令队列指令送到指令队列; CPU执行指令时,要配合执行指令时,要配合执行部件从指定的内存单元或执行部件从指定的内存单

8、元或者外设端口中者外设端口中取数据取数据,将,将数据数据传送给执行部件传送给执行部件EU; 或把执行部件的操作或把执行部件的操作结果结果传给指定的传给指定的M或或I/O口口。地址总线地址总线集成了2.9万晶体管负责指令的执行,它从指令流队列取得指令,然后分析和执行指负责指令的执行,它从指令流队列取得指令,然后分析和执行指令。同时利用内部的寄存器和令。同时利用内部的寄存器和ALUALU对数据进行所需的处理,还要负对数据进行所需的处理,还要负责计算操作数的责计算操作数的1616位位偏移地址偏移地址。 执行部件执行部件EUn4 4个通用寄存器,即个通用寄存器,即AXAX,BXBX,CXCX,DXDX

9、;n4 4个专用寄存器,个专用寄存器,nSI (Source Index):SI (Source Index):源变址寄存器源变址寄存器nDI (Destination Index):DI (Destination Index):目的变址寄存器目的变址寄存器nBP (Base Pointer):BP (Base Pointer):基址指针基址指针nSP (Stack Point):SP (Stack Point):堆栈指针堆栈指针n标志寄存器标志寄存器(FR)(FR),微处理器状态字微处理器状态字(Processor State Word(Processor State Word,PSW)PS

10、W)n算术逻辑部件算术逻辑部件(ALU)(ALU)。 EU的组成的组成根据根据EUEU计算出的计算出的1616位位偏移地址偏移地址及及1616位位段地址段地址计算出计算出2020位位物理地物理地址址,并根据,并根据EUEU请求采用计算出的请求采用计算出的2020位物理地址读位物理地址读/ /写寄存器,写寄存器,也可根据也可根据EUEU请求读请求读/ /写写I/OI/O设备,完成与存储器、设备,完成与存储器、I IO O端口之间端口之间传送数据。传送数据。 总线接口部件总线接口部件BIUBIU的功能的功能4 4个段地址寄存器,即个段地址寄存器,即nCS16CS16位代码段寄存器;位代码段寄存器;

11、nDS16DS16位数据段寄存器;位数据段寄存器;nES16ES16位附加段寄存器;位附加段寄存器;nSS16SS16位堆栈段寄存器。位堆栈段寄存器。n1616位指令指针寄存器位指令指针寄存器IPIP。n2020位的地址加法器。位的地址加法器。n6 6字节的指令队列。字节的指令队列。 主要组成主要组成 80868086的指令队列为的指令队列为6 6个字节,个字节,80888088的指令队列为的指令队列为4 4个字节。不管是个字节。不管是80868086还是还是80888088,都会在执行指令的同时,从内存中取下一条指令,都会在执行指令的同时,从内存中取下一条指令或下几条指令,取来的指令就放在指

12、令队列中。或下几条指令,取来的指令就放在指令队列中。 指令队列指令队列n地址加法器用来产生地址加法器用来产生2020位地址。位地址。80868086可用可用2020位地址寻址位地址寻址1M1M字节的字节的内存空间,但内存空间,但80868086内部所有的寄存器都是内部所有的寄存器都是1616位的,所以需要由一位的,所以需要由一个附加的机构来根据个附加的机构来根据1616位寄存器提供的信息计算出位寄存器提供的信息计算出2020位的物理地位的物理地址,这个机构就是址,这个机构就是2020位的地址加法器位的地址加法器。 地址加法器用地址加法器用n假设假设CS=0CS=0FE00FE00H H,IP=

13、IP=04000400H H,此时指令的物理地址为,此时指令的物理地址为0 0FE400FE400H H。 在执行指令的过程中,如果必须访问存储器或者输入输出在执行指令的过程中,如果必须访问存储器或者输入输出设备,那么,执行部件就会请求总线接口部件,进入总线周设备,那么,执行部件就会请求总线接口部件,进入总线周期,完成访问内存或者输入输出端口的操作;期,完成访问内存或者输入输出端口的操作; 如果此时总线接口部件正好处于空闲状态,那么,会立即响如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。应执行部件的总线请求。 EU和和BIU之间是通过指令队列相互联系的之间是通过指令

14、队列相互联系的 EU和和BIU的联系上的不同步性:的联系上的不同步性:n指令队列空余时的填充指令队列空余时的填充n当指令队列已满,而且执行部件又没有总线访问时,总线接当指令队列已满,而且执行部件又没有总线访问时,总线接口部件便进入空闲状态。口部件便进入空闲状态。n在执行转移指令、调用指令和返回指令时,指令队列中的原在执行转移指令、调用指令和返回指令时,指令队列中的原有内容被自动消除,总线接口部件会接着往指令队列中装入有内容被自动消除,总线接口部件会接着往指令队列中装入另一个程序段中的指令。另一个程序段中的指令。AHAHALALBHBHBLBLCHCHCLCLDHDHDLDLSPSPBPBPSI

15、SIDIDIIPIPF FCSCSDSDSSSSSESESAXAXBXBXCXCXDXDX累加器累加器基址基址计数计数数据数据数据寄存器数据寄存器8 88 8附加数据段附加数据段堆栈段堆栈段数据段数据段代码段代码段段寄存器段寄存器指令指示器指令指示器状态标志寄存器状态标志寄存器控制寄存器控制寄存器堆栈指针堆栈指针基址指针基址指针 源变址源变址目的变址寄存器目的变址寄存器地址指针寄存器地址指针寄存器变址寄存器变址寄存器通通用用寄寄存存器器CPUCPU中设置通用寄存器的作用?中设置通用寄存器的作用? 如果不设置寄存器,如果不设置寄存器,CPU每次执行命令需要的操每次执行命令需要的操作数(数据)都要

16、去存储器中取,运算的结果也要作数(数据)都要去存储器中取,运算的结果也要马上送到存储器,这样既浪费时间又非常不方便。马上送到存储器,这样既浪费时间又非常不方便。 CPU中设置较多的寄存器,用于暂时存放的操作中设置较多的寄存器,用于暂时存放的操作数,地址,运算中间的结果和数据,数,地址,运算中间的结果和数据,CPU能够非常能够非常快,非常方便的存取数据,并不需要每次都去访问快,非常方便的存取数据,并不需要每次都去访问外部的存储器,因而提高的执行的速度和效率,同外部的存储器,因而提高的执行的速度和效率,同时还能使编程更加灵活。时还能使编程更加灵活。:可以按字(可以按字(16位)或字节(位)或字节(

17、8位)形式访问位)形式访问MOV BX , AX IN AL , 20H1、通用寄存器、通用寄存器(1)数据寄存器)数据寄存器 AX、BX、CX、DX 作为通用寄存器。作为通用寄存器。用来用来暂存暂存计算过程中所用到的计算过程中所用到的操作数,结果或其它信息操作数,结果或其它信息。 高高8位记作位记作 : AH 、 BH 、 CH 、 DH 。 低低8位记作位记作 : AL 、BL 、CL 、DL 。访问形式访问形式功能功能算术运算的主要寄存器,算术运算的主要寄存器,所有所有I/O指令都使用这一寄存器与外部设备交换数据指令都使用这一寄存器与外部设备交换数据功能功能实例:实例:可以做8位使用也可

18、以做16为用 对某些对某些I/O操作操作DX可用来存放可用来存放I/O的端口地址(的端口地址(口地址口地址 256)MOV CX , 8 AGAIN: LOOP AGAIN ;CX-1(CX),结果结果 0转转AGAINMOV AX, BX+03H在在计算内存储器地址时,经常用来存放基址。计算内存储器地址时,经常用来存放基址。功能功能:实例:实例:可以可以作计数寄存器作计数寄存器使用使用在在循环循环LOOP指令和串处理指令中用作隐含计数器指令和串处理指令中用作隐含计数器。功能功能:实例:实例:可以可以作为数据寄存器使用。作为数据寄存器使用。一般在一般在双字长乘除法运算时双字长乘除法运算时,把把

19、DX和和AX组合在一起存放一个双字组合在一起存放一个双字长长(32位位)数,数,DX用来存放高用来存放高16位位n 经常用以在经常用以在段内寻址时提供偏移地址段内寻址时提供偏移地址, 本身不能形成独本身不能形成独立立 的地址码。的地址码。(2)地址指针与变址寄存器)地址指针与变址寄存器: SP、BP、SI、DI n 以字为单位在运算过程中存放操作数以字为单位在运算过程中存放操作数 可以可以与与SS寄存器联合使用来确定寄存器联合使用来确定堆栈段堆栈段中中某一某一存储器单元地址,存储器单元地址,在某些间接寻址中,用来存放在某些间接寻址中,用来存放堆栈堆栈段内偏移地址段内偏移地址 。 SP(stac

20、k pointer 堆栈指针寄存器堆栈指针寄存器 用来用来指示当前堆栈指示当前堆栈栈顶栈顶的偏移地址的偏移地址, 必须必须与与SS段寄存器段寄存器联合使联合使 用确定实际地址。用确定实际地址。 BP(base pointer)基址指针寄存器基址指针寄存器补充:堆栈(补充:堆栈(STACK) 是按后进先出原则组织的一片存储区域,用来暂存一批需要回避的数据或地址。“后进先出后进先出”n堆栈:堆栈:暂存数据、断点信息或传送信息n用途:用途:n存取原则存取原则:n堆栈段的堆栈段的最大深度最大深度:64KB是一个只能有一端操作的临时仓库,速度快,应用灵活,使用不需要提供地址 堆栈的构造堆栈的构造 一端一

21、端固定固定,具有最大地址的,具有最大地址的单元(数据由此向上堆积)单元(数据由此向上堆积)一端一端浮动浮动,指向最后被压入堆栈,指向最后被压入堆栈的数据所在存储单元(栈顶的位的数据所在存储单元(栈顶的位置随堆栈中存放数据多少而变化)置随堆栈中存放数据多少而变化)用来指示当前栈顶的位置。(压用来指示当前栈顶的位置。(压入的数据放入哪个单元或从那个入的数据放入哪个单元或从那个单元弹出数据均由单元弹出数据均由SP决定决定堆堆栈栈段段SSBottomXXXXXXXXTopSP初始初始SP栈底:栈底:栈顶:栈顶:堆栈指针:堆栈指针: 堆栈就是是在内存中开辟一个存储区域,数据一堆栈就是是在内存中开辟一个存

22、储区域,数据一个一个个一个顺序地存入顺序地存入(也就是也就是“压入压入”)这个区域之中这个区域之中。有一个地址指针总指向最后一个压入堆栈的数。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做就叫做堆栈指示器。开始放入数据的单元叫做“栈底栈底”。数据一个一个地存入,这个过程叫做。数据一个一个地存入,这个过程叫做“压栈压栈”。在压栈的过程中,每有一个数据压入堆。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中栈,就放在和前一个单元相连的后面一个单元中,堆栈

23、指示器中的地址自动加,堆栈指示器中的地址自动加1。读取这些数据。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减示器中的地址数自动减 1。这个过程叫做。这个过程叫做“弹出弹出”。如此就实现了。如此就实现了后进先出后进先出的原则。的原则。 该片存储区域所包含存储单元数,其值由初始该片存储区域所包含存储单元数,其值由初始时时SP的值决定(指向栈底的值决定(指向栈底+1单元)单元)12H34H01954H01955H如如64KB的堆栈段不能满足需要,可的堆栈段不能满足需要,可通过修改通过修改SS(堆栈段寄存器)来改(堆栈段寄存器)来

24、改变当前的堆栈段,使之指向另一片变当前的堆栈段,使之指向另一片存储区域,同时存储区域,同时SP重新赋值。重新赋值。 堆栈段堆栈段:由由SS存放堆栈段段基值以决定其起始地址存放堆栈段段基值以决定其起始地址 堆栈段的长度:堆栈段的长度:堆栈是按字组织的,数据的存取均为堆栈是按字组织的,数据的存取均为2字节操作字节操作 数据在堆栈段内的存放数据在堆栈段内的存放 堆栈区域的扩展:堆栈区域的扩展:SS、SP赋值(段的起始位置及长度)SP-2 SP; 栈顶向上浮动数据(SS:SP) (SS:SP) R/M SP+2 SP数据;栈顶向下回落1、设置堆栈、设置堆栈2、进栈、进栈把数据压入堆栈,在栈顶进行3、出

25、栈、出栈从栈顶取出数据送入R/M SISource Index Register 源变址寄存器。源变址寄存器。 DIDestination Index 目的变址寄存器。目的变址寄存器。 一般与一般与DS联用,用来确定联用,用来确定数据段数据段中某一存储单元的地址中某一存储单元的地址 在数据串操作中,在数据串操作中,SI与与DS联用,联用,DI与与ES联用联用变址寄存器变址寄存器(SI(SI、 DI)DI)常用于变址寻址方式中的地址运算常用于变址寻址方式中的地址运算n 使用场合:使用场合: SI , DI具有自动增量和自动减量功能具有自动增量和自动减量功能.CSCode Segment Regi

26、ster 代码段寄存器代码段寄存器 用来识别当前代码段(程序一般放在代码段)。用来识别当前代码段(程序一般放在代码段)。2、段寄存器:用来存放基址段寄存器:用来存放基址段寄存器段寄存器: 4个个16位段寄存器位段寄存器CS、DS、SS、ES。用来用来识别当前可寻址的四个段,不可互换的使用。识别当前可寻址的四个段,不可互换的使用。DSData Segment Register数据段寄存器数据段寄存器 用来识别当前数据段寄存器。用来识别当前数据段寄存器。SSStack Segment Register堆栈段寄存器,堆栈段寄存器, 用来识别当前堆栈段。用来识别当前堆栈段。ESExtra Segmen

27、t Register附加段寄存器附加段寄存器, 用来识别当前附加段。用来识别当前附加段。IPInstruction Pointer指令指针寄存器指令指针寄存器3、控制寄存器、控制寄存器: IP 、 FLAG 用来存储代码段中的偏移地址用来存储代码段中的偏移地址; 程序运行过程中程序运行过程中IP始终指向下一次要取出的指令偏移地址始终指向下一次要取出的指令偏移地址 IP要与要与CS寄存器相配合才能形成真正的物理地址。寄存器相配合才能形成真正的物理地址。OFOFDFDFIFIFTFTFSFSFZFZFAFAFPFPF 0 015152 24 45 56 67 78 89 91010CFCF标志寄存

28、器标志寄存器指令指示器IP的作用 计算机能够自动的执行指令,自动的运行,能一条条的执计算机能够自动的执行指令,自动的运行,能一条条的执行输入的程序,是因为行输入的程序,是因为CPU中有专门跟踪指令地址的电路中有专门跟踪指令地址的电路,就是,就是IP, 开始给开始给IP赋值,然后赋值,然后IP就自动指向下一条指令的就自动指向下一条指令的地址。地址。 IP总是保存着下一次将要取出指令的偏移地址。总是保存着下一次将要取出指令的偏移地址。 总线接口部件根据总线接口部件根据IP的内容与的内容与CS寄存器的内容形成指令的寄存器的内容形成指令的物理地址,并根据该地址从主存中取出指令,送入指令队物理地址,并根

29、据该地址从主存中取出指令,送入指令队列机构排队,然后列机构排队,然后IP增量,形成下一个字节的偏移地址。增量,形成下一个字节的偏移地址。 如果碰到要改变如果碰到要改变IP的指令如转移指令,则清队列,直接按的指令如转移指令,则清队列,直接按IP的新内容与的新内容与CS寄存器的内容形成指令的物理地址执行,然寄存器的内容形成指令的物理地址执行,然后再从该地址开始,重新继续取指令填满排队机构。后再从该地址开始,重新继续取指令填满排队机构。 状态标志共包括状态标志共包括6位:位:CF 、 PF 、 AF 、 ZF 、 SF 、 OF 。 对控制标志位进行设置后对控制标志位进行设置后, 对其后的操作起控制

30、作用。对其后的操作起控制作用。q状态标志状态标志: 用来记录程序中运行结果的用来记录程序中运行结果的状态信息状态信息作为后续条作为后续条 件转移指令的转移控制条件,也称为状态标志。件转移指令的转移控制条件,也称为状态标志。q 控制标志控制标志: 控制标志位包括控制标志位包括3位位: TF、 IF 、 DF例如CF为进位标志,=1为说明有进位或借位l 每一个存储单元用每一个存储单元用8位(一个字节)来编址位(一个字节)来编址l 每一个存储单元用一个唯一的地址码标示每一个存储单元用一个唯一的地址码标示l 一个一个16位的数据占据连个连续的单元位的数据占据连个连续的单元l 连续的两个单元有各自的地址

31、连续的两个单元有各自的地址4.2.3 4.2.3 存储器结构存储器结构n8086/8088CPU能寻址能寻址1M字节的存储单元,以字节的存储单元,以8位位为一个字节的顺序排列存放。为一个字节的顺序排列存放。n地址码为一个不带符号的整数表示,范围从地址码为一个不带符号的整数表示,范围从0到到220-1,习惯,习惯用十六进制表示,即用十六进制表示,即00000HFFFFFH。将存储器空间按。将存储器空间按照字节地址号顺序排列的方式称作照字节地址号顺序排列的方式称作“字节编址字节编址”。16位寄存器位寄存器数据线数据线20位地址位地址要求要求20位位的寄存器的寄存器 16位地址加法器位地址加法器 段

32、寄存器段寄存器20位地址的形成位地址的形成16位段地址16位段地址0000000016位偏移地址16位偏移地址0 015150 0151520位物理地址20位物理地址0 01919+ +段基址段基址0 0 0 00 0 0 03 2 1 03 2 1 015 015 0偏移地址偏移地址基址加法器基址加法器物理地址物理地址0 015150 01919地址地址根据各段的用途将其定义为CS、DS、ES、SS段。并用偏移地址(距段起址的字节距离)表示被访问单元。1. 存储器的分段存储器的分段n 每段最长可达 216(64K)字节n各段起始地址能被 16 整除。 (低 4 位为 0 )n各段之间可分开、

33、部分或完全重叠、可首尾相接。8086存储器为什么要分段?n段地址段地址n每一个段首地址的低每一个段首地址的低4位是位是“0”(被(被16整除)整除)n段首地址的高段首地址的高16位称为位称为“段基址段基址”,也称段地址,也称段地址 n段地址一般存放在段寄存器段地址一般存放在段寄存器DS,CS,SS,ES n偏移地址偏移地址n每一个段的容量:每一个段的容量:64KB (0000HFFFFH)n偏移地址是指一个段内的存储空间相对于段基地址的偏移偏移地址是指一个段内的存储空间相对于段基地址的偏移n段内偏移地址一般存放在段内偏移地址一般存放在IP, SPn 段内偏移地址是连续的段内偏移地址是连续的 任

34、何一个存储单元对应一个任何一个存储单元对应一个2020位的物理地址,也可称位的物理地址,也可称为实际地址,它是由为实际地址,它是由逻辑地址逻辑地址变换得来的。当变换得来的。当CPUCPU需要需要访问存储器时,必须完成如下的地址运算:访问存储器时,必须完成如下的地址运算:2. 存储器中的逻辑地址和物理地址存储器中的逻辑地址和物理地址n 任何一个任何一个逻辑地址逻辑地址由由段基址段基址和和偏移地址偏移地址两个部分构成,两个部分构成,它们都是无符号的它们都是无符号的1616位二进制数。位二进制数。逻辑地址的表示:逻辑地址的表示:段地址段地址 :偏移地址:偏移地址对应于同一物理地址,可以有不同的逻辑地

35、址对应于同一物理地址,可以有不同的逻辑地址物理地址物理地址= =段地址段地址10+10+偏移地址偏移地址物理地址是唯一的物理地址是唯一的要分清段内偏移地址的来源,及其相匹配的段地址要分清段内偏移地址的来源,及其相匹配的段地址 逻辑地址=段地址:偏移地址 段地址0000 + 偏移地址 地址加法器= 20位的物理地址 1.例:已知某存储单元所在的段地址为例:已知某存储单元所在的段地址为0AC08H,偏移地址为,偏移地址为2596H,试求出该单,试求出该单元所在的物理地址?元所在的物理地址?2.已知某单元的物理地址为已知某单元的物理地址为21000H,试,试求该单元所对应的逻辑地址?求该单元所对应的

36、逻辑地址?.20000H20000H25F60H25F60H25F61H25F61H25F62H25F62H25F63H25F63H2000H2000H段基址段基址逻逻辑辑地地址址段内偏移地址段内偏移地址5F62H5F62H逻辑地址与物理地址逻辑地址与物理地址已知已知CS、DS、SS和和SS分别为分别为1055H , 250AH, 8FFBH 和和 EFF0H,试分析它,试分析它们在存储器中的分们在存储器中的分布情况。布情况。 是实际地址,它具有是实际地址,它具有2020位的地址值,并是惟一标识位的地址值,并是惟一标识1MB1MB存储空间的某一个字节的地址存储空间的某一个字节的地址每一个存储单

37、元看成是具有两种类型的地址:每一个存储单元看成是具有两种类型的地址:n由段基址和偏移地址组成。程序以逻辑地址编址,由段基址和偏移地址组成。程序以逻辑地址编址,而不是用物理地址。而不是用物理地址。物理地址和逻辑地址物理地址和逻辑地址物理地址物理地址:逻辑地址逻辑地址:n指令程序指令程序一般存放在代码段一般存放在代码段(CS)(CS)中,段地址来源于代码段寄存器,中,段地址来源于代码段寄存器,偏移地址来源于指令指针偏移地址来源于指令指针IP,IP,即即n 4个个段寄存器段寄存器分别指向分别指向4个分段的起始字节单元个分段的起始字节单元指令程序的物理地址指令程序的物理地址= =(CS)CS)* *1

38、0+(IP)10+(IP)n进行进行堆栈堆栈操作时,段地址寄存器为操作时,段地址寄存器为SSSS,偏移地址来源于栈指针寄存,偏移地址来源于栈指针寄存器器SP,SP,即即堆栈地址堆栈地址=(SS)=(SS)* *10+(SP)10+(SP)n对于对于操作数操作数,则由数据段寄存器,则由数据段寄存器DSDS或附加段寄存器或附加段寄存器ESES作为段寄存器,作为段寄存器,而偏地址取决于指令的寻址方式。而偏地址取决于指令的寻址方式。物理地址物理地址=段地址段地址x16+偏移地址偏移地址 (10进制地址)进制地址)n在存储器中存储的信息可以分为程序指令、数据、和在存储器中存储的信息可以分为程序指令、数据

39、、和计算机系统的状态等信息,为了寻址和操作的方便,计算机系统的状态等信息,为了寻址和操作的方便,存储器的空间可按信息特征进行分段存储。存储器的空间可按信息特征进行分段存储。n 一般将存储器划分为一般将存储器划分为程序区、数据区、和堆栈区程序区、数据区、和堆栈区。n程序区中存储程序的指令代码程序区中存储程序的指令代码n堆栈区存储压入堆栈的数据和状态信息堆栈区存储压入堆栈的数据和状态信息n数据区中存储原始数据、中间结果和最后结果数据区中存储原始数据、中间结果和最后结果n数据段寄存器数据段寄存器DS和附加段寄存器和附加段寄存器ES存储存储源和目的数据区段源和目的数据区段的的段地址;段地址;n8086

40、8088CPU中通常按照信息特征来区分段寄存中通常按照信息特征来区分段寄存器的作用,如:器的作用,如:n代码段寄存器代码段寄存器CS存储存储程序存储器区程序存储器区的段地址;的段地址;n堆栈段寄存器堆栈段寄存器SS存储存储堆栈区堆栈区的段地址的段地址n80868088中设置四个段寄存器的目的除了可以扩充寻址中设置四个段寄存器的目的除了可以扩充寻址的范围以外,还便于存储器的读写操作的范围以外,还便于存储器的读写操作 在执行程序时在执行程序时CS指定程序的指定程序的段地址,段地址,IP作为程序段内的作为程序段内的偏移量来控制取指令的地址。偏移量来控制取指令的地址。1、对程序区的访问、对程序区的访问

41、n为程序单独划开的存储器区为程序单独划开的存储器区称为称为程序存储区。程序存储区。n当取指令的物理地址代码当取指令的物理地址代码段寄存器段寄存器CS的内容左移四位的内容左移四位加上指令指针加上指令指针IP的内容。的内容。 堆栈操作所指的物理地堆栈操作所指的物理地址堆栈段寄存器内容址堆栈段寄存器内容左移四位后加上堆栈指左移四位后加上堆栈指针的内容针的内容2、堆栈区的操作、堆栈区的操作n不同的任务程序区往往要不同的任务程序区往往要求有对应的堆栈区,以便求有对应的堆栈区,以便在执行程序时进行各自的在执行程序时进行各自的堆栈操作。堆栈操作。n程序更新时,堆栈区也程序更新时,堆栈区也随之更新,这就需要指

42、随之更新,这就需要指定堆栈段寄存器定堆栈段寄存器SSSS。u不同任务的程序一般有与不同任务的程序一般有与之对应的数据区,在执行之对应的数据区,在执行指令时对区内的数据进行指令时对区内的数据进行操作,需要设置数据段寄操作,需要设置数据段寄存器存器DSDS3、数据区、数据区u实际操作的物理地址数据实际操作的物理地址数据段寄存器的内容左移四位,段寄存器的内容左移四位,加上基地址寄存器加上基地址寄存器BXBX或通过或通过寻址获得的有效地址寻址获得的有效地址EAEA。 字符串操作时,一般是对存字符串操作时,一般是对存储器中的两个数据块进行储器中的两个数据块进行传送,需要在一条指令中传送,需要在一条指令中

43、同时指定源和目的两个数同时指定源和目的两个数据区。据区。 需要分别使用数据段寄存器需要分别使用数据段寄存器DSDS和附加段寄存器和附加段寄存器ESES分别指分别指定源数据区和目的数据区的定源数据区和目的数据区的段地址,用段地址,用SISI和和DIDI变址寄存变址寄存器指明段内偏移量。器指明段内偏移量。 访问存储器时所使用的段地址可以由指令中隐含的段寄存器提供,访问存储器时所使用的段地址可以由指令中隐含的段寄存器提供,也可以由也可以由“可更换的段寄存器可更换的段寄存器”提供。提供。访问存储器时使用段地址寄存器和偏移地址寄存器访问存储器时使用段地址寄存器和偏移地址寄存器 段寄存器段寄存器DS、SS

44、、ES的内容可以通过传送类指令置入或者进行变的内容可以通过传送类指令置入或者进行变更,但代码段寄存器不同,它的内容是当前程序指令字节地址的一更,但代码段寄存器不同,它的内容是当前程序指令字节地址的一部分,只能通过部分,只能通过JMP、CALL、RET、INT和和IRET等指令来改变。等指令来改变。 段内偏移地址的来源除段内偏移地址的来源除IP、SP、SI和和DI外,还可以由寻址方式求外,还可以由寻址方式求得的得的EA确定确定访问存储器类型访问存储器类型隐含的隐含的段地址段地址可可”段更换段更换”的段地址的段地址段内偏移地址来源段内偏移地址来源取指令码取指令码CS无无IP堆栈操作堆栈操作SS无无

45、SP字符串操作源地址字符串操作源地址DSCS,ES,SSSI字符串操作目的地址字符串操作目的地址ES无无DIBP用作基址寄存器时用作基址寄存器时SSCS,DS,ES由指令寻址方式求得有效地址由指令寻址方式求得有效地址EA一般数据存取一般数据存取DSCS,ES,SS由指令寻址方式求得有效地址由指令寻址方式求得有效地址EA 是指信号高低电平是指信号高低电平( (有效或无效有效或无效) )变化及相互变化及相互间的时间顺序关系。间的时间顺序关系。什么是什么是总线操作总线操作?n时序(时序(Timing):):nCPU时序决定系统各部件间的同步和定时n总线时序描述CPU引脚如何实现总线操作总线操作n总线

46、操作是指CPU通过总线对外的各种操作n8088的总线操作主要有:n存储器读、I/O读操作n存储器写、I/O写操作n中断响应操作n总线请求及响应操作CPU对存贮器和I/O接口的访问,是通过总线实现的。通常把CPU通过总线对微处理器外部(存储器或I/O接口)进行一次访问所需时间称为一个总线周期。什么是什么是指令、总线和时钟周期指令、总线和时钟周期?n描述总线操作的微处理器时序有三级:n指令周期指令周期总线周期总线周期时钟周期时钟周期n指令周期指令周期 : :是指一条指令经取指、译码、读写操作数到执是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期。行完成的过程。若干

47、总线周期组成一个指令周期。n总线周期总线周期 :是指是指CPU通过总线操作(接口)与外部(存储通过总线操作(接口)与外部(存储器或器或I/O端口)进行一次数据交换的过程。端口)进行一次数据交换的过程。n8088的基本总线周期需要的基本总线周期需要4个时钟周期个时钟周期n4个时钟周期编号为个时钟周期编号为T1、T2、T3和和T4n总线周期中的时钟周期也被称作总线周期中的时钟周期也被称作“T状态状态” n时钟周期的时间长度就是时钟频率(主频)的倒数时钟周期的时间长度就是时钟频率(主频)的倒数 T1 T2 T3 T4 Ti Ti T1 T2 T3 Tw Tw Tw T4 Ti Ti 总线周期总线周期

48、若干个12个u基本总线周期由基本总线周期由4 4个个T T状态组成:状态组成:T T1 1、T T2 2、T T3 3、T T4 4u等待时钟周期等待时钟周期T Tw w,在总线周期的,在总线周期的T T3 3和和T T4 4之间插入之间插入u空闲时钟周期空闲时钟周期T Ti i,在两个总线周期之间插入,在两个总线周期之间插入动态演示n任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码。何时有何时有总线周期总线周期?n任何一条以存储单元为源操作数的指令都将引起存存储器读总线周期储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期。n只有执行IN指令才出现I/

49、OI/O读总线周期读总线周期,执行OUT指令才出现I/OI/O写总线周期写总线周期。nCPU响应可屏蔽中断时生成中断响应总线周期中断响应总线周期。 多路总线的高多路总线的高4 4位继续提供状态信息,而多路总线的低位继续提供状态信息,而多路总线的低1616位位(8088(8088则为低则为低8 8位位) )上出现由上出现由CPUCPU写出的数据或者写出的数据或者CPUCPU从存储器从存储器或端口读入的数据。或端口读入的数据。总线操作的简要过程总线操作的简要过程nCPUCPU往总线上发出地址信息,指出要寻址的存储单元或往总线上发出地址信息,指出要寻址的存储单元或I/OI/O端口地址。端口地址。nC

50、PUCPU撤消地址,使总线的低撤消地址,使总线的低1616位浮置成高阻状态,为传输数位浮置成高阻状态,为传输数据做准备。总线的最高四位据做准备。总线的最高四位(A(A1616A A1919) )用来输出本总线周期用来输出本总线周期状态信息。状态信息。 T1 T2 T3 Tw Tw Tw T4CLKREADY前沿检测前沿检测动态动态 CPU总线周期采用同步时序同步时序:总线操作的总线操作的同步同步n总线操作中如何实现时序同步是关键n各部件都以系统时钟信号为基准n当相互不能配合时,快速部件(CPU)插入等待状态等待慢速部件(I/O和存储器)nCPU与外设接口常采用异步时序异步时序,它们通过应答联络

51、信号实现同步操作 一个微型机系统要完成各种任务,其中有一些操一个微型机系统要完成各种任务,其中有一些操作是最基本的。作是最基本的。80868086的主要的的主要的基本操作基本操作有:有: 系统的复位和启动操作;系统的复位和启动操作; 总线操作;总线操作; 中断操作;中断操作; 最小工作模式下的总线请求;最小工作模式下的总线请求; 最大工作模式下的读写操作。最大工作模式下的读写操作。 80868088的复位和启动操作是在RESET引脚上加上触发信号来执行的。8086808680888088要求复位信号要求复位信号(RESET)(RESET)至少有至少有4 4个时钟周期的高电平,如个时钟周期的高电

52、平,如果是初次加电的启动,则要求有大于果是初次加电的启动,则要求有大于50s50s的高电平。的高电平。标志寄存器FR指令指针寄存器IPCSDSSSES指令队列其他寄存器清零0000HFFFFH0000H0000H0000H空0000H复位时内部各寄存器的值复位时内部各寄存器的值n在复位的时候,代码段寄存器在复位的时候,代码段寄存器CSCS和指令指针寄存器和指令指针寄存器IPIP分别初始化为分别初始化为FFFFHFFFFH和和0000H0000H。所以,。所以,8086808680888088在复位之后再重新启动时,便从在复位之后再重新启动时,便从内存的内存的FFFF0HFFFF0H处开始执行指

53、令,使系统在启动时,能自动进入系统处开始执行指令,使系统在启动时,能自动进入系统程序。程序。n复位信号复位信号RESETRESET从高电平到低电平的跳变会触发从高电平到低电平的跳变会触发CPUCPU内部的一个复位内部的一个复位逻辑电路,经过逻辑电路,经过7 7个时钟周期个时钟周期之后,之后,CPUCPU就被启动而恢复正常工作,就被启动而恢复正常工作,即从即从FFFF0HFFFF0H处开始执行程序。处开始执行程序。80868088 CPU中各单元之间以及与外设的数据交换,都是通中各单元之间以及与外设的数据交换,都是通过总线来进行的。总线操作有两种情况,即过总线来进行的。总线操作有两种情况,即总线读操作总线读操作及及总线写总线写操作操作。n总线读操作指CPU从存储器(M)或外设端口(I/O)读取数据。n总线写操作指CPU把数据写入存储器(M)或外设端口(I/O)。 微机系统为适应各种需要,都有一个中断系统,微机系统为适应各种需要,都有一个中断系统,80868088是是16位微处理器,它的中断系统可以处理位微处理器,它的中断系统可以处理256种种不同不同类型的中断。类型的中断。硬件中断硬件中断

温馨提示

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

评论

0/150

提交评论