第2章 微处理器结构及基本原理.ppt

上传人:s****8 文档编号:68701961 上传时间:2022-12-29 格式:PPT 页数:37 大小:2.01MB
返回 下载 相关 举报
第2章 微处理器结构及基本原理.ppt_第1页
第1页 / 共37页
第2章 微处理器结构及基本原理.ppt_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《第2章 微处理器结构及基本原理.ppt》由会员分享,可在线阅读,更多相关《第2章 微处理器结构及基本原理.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第2章章 微处理器结构及基本原理微处理器结构及基本原理本章学习目标本章学习目标掌握微处理器的结构掌握微处理器的结构掌握微处理器的工作原理掌握微处理器的工作原理2.1 Intel 8086 微处理器内部结构微处理器内部结构8086微处理器的主要特点:微处理器的主要特点:16位微处理器;位微处理器;数据总线数据总线16位;位;地址总线地址总线20位,可寻址位,可寻址1MB存储空间;存储空间;时钟频率为时钟频率为510MHz。8086 CPU的内部结构由执行单元的内部结构由执行单元EU(execution unit)和总线接口部件和总线接口部件BIU(bus interface unit)两部分组

2、成。两部分组成。Intel 8086 微处理器的内部结构如图所示。微处理器的内部结构如图所示。1总线接口部件总线接口部件BIU总线接口部件总线接口部件BIU负责负责8086 CPU与存储器和外设之间的与存储器和外设之间的信息传送。信息传送。BIU负责从内存的指定区域取出指令,送至指令队列排队。负责从内存的指定区域取出指令,送至指令队列排队。在执行指令时所需要的操作数,也由在执行指令时所需要的操作数,也由BIU从内存的指定区从内存的指定区域取出,传送给执行部件域取出,传送给执行部件EU去执行。去执行。BIU包含一个地址加法器、一组包含一个地址加法器、一组16位的段寄存器、一个位的段寄存器、一个1

3、6位的指令指针位的指令指针IP、一个一个6字节的指令队列缓冲器及总线控字节的指令队列缓冲器及总线控制电路。制电路。(1)地址加法器和段寄存器)地址加法器和段寄存器8086采用了分段结构,将采用了分段结构,将1MB的内存空间划分为若干个的内存空间划分为若干个逻辑段,在每个逻辑段中使用逻辑段,在每个逻辑段中使用16位段基址和位段基址和16位偏移地位偏移地址进行寻址,段寄存器用来存放各段的段基址。址进行寻址,段寄存器用来存放各段的段基址。利用利用BIU的地址加法器计算并形成的地址加法器计算并形成CPU所要访问的存储单所要访问的存储单元地址(元地址(20位)或位)或I/O端口地址(端口地址(16位)。

4、位)。(2)指令队列缓冲器)指令队列缓冲器指令队列缓冲器是指令队列缓冲器是6个字节的个字节的“先进先出先进先出”的的RAM存储器,存储器,用来按顺序存放用来按顺序存放CPU要执行的指令代码,并送入执行部要执行的指令代码,并送入执行部件件EU中去执行。中去执行。EU总是从指令队列的输出端取指令,每当指令队列中存总是从指令队列的输出端取指令,每当指令队列中存满一条指令后,满一条指令后,EU就立即开始执行。就立即开始执行。当指令队列中前两个指令字节被当指令队列中前两个指令字节被EU取走后,取走后,BIU就自动就自动执行总线操作,读出指令并填入指令队列中。执行总线操作,读出指令并填入指令队列中。当程序

5、发生跳转时,当程序发生跳转时,BIU则立即清除原来指令队列中的内则立即清除原来指令队列中的内容并重新开始读取指令代码。容并重新开始读取指令代码。(3)总线控制电路)总线控制电路总线控制电路主要负责产生总线控制信号。总线控制电路主要负责产生总线控制信号。2执行部件执行部件EU从从BIU的指令队列中取出指令、分析指令并执行指令,而的指令队列中取出指令、分析指令并执行指令,而执行指令过程中所需要的数据和执行的结果,也都由执行指令过程中所需要的数据和执行的结果,也都由EU向向BIU发出请求,再由发出请求,再由BIU对存储器或外设进行存取操作对存储器或外设进行存取操作来完成。来完成。EU部件主要由算术逻

6、辑单元、标志寄存器、通用寄存器、部件主要由算术逻辑单元、标志寄存器、通用寄存器、指针寄存器、暂存寄存器、指令译码器和控制电路组成。指针寄存器、暂存寄存器、指令译码器和控制电路组成。(1)算术逻辑单元)算术逻辑单元ALUALU是一个是一个16位的算术逻辑运算部件,用来对操作数进位的算术逻辑运算部件,用来对操作数进行算术运算和逻辑运算,也可以按指令的寻址方式计算出行算术运算和逻辑运算,也可以按指令的寻址方式计算出CPU要访问的内存单元的要访问的内存单元的16位偏移地址。位偏移地址。(2)数据暂存寄存器)数据暂存寄存器数据暂存寄存器是一个数据暂存寄存器是一个16位的寄存器,它的主要功能是位的寄存器,

7、它的主要功能是暂时保存数据,并向暂时保存数据,并向ALU提供参与运算的操作数。提供参与运算的操作数。(3)EU控制电路控制电路EU控制电路接收从控制电路接收从BIU指令队列中取出的指令代码,经指令队列中取出的指令代码,经过分析、译码后形成各种实时控制信号,对各个部件进行过分析、译码后形成各种实时控制信号,对各个部件进行实时操作。实时操作。2.2 Intel 8086微处理器引脚信号及功能微处理器引脚信号及功能 8086 CPU是是40引脚双列直插式芯片,微处理器通过这些引脚双列直插式芯片,微处理器通过这些引脚可以和存储器、引脚可以和存储器、I/O接口、外部控制管理部件,以及接口、外部控制管理部

8、件,以及其他微处理器相互交换信息。其他微处理器相互交换信息。最小模式,就是在系统中只有一个最小模式,就是在系统中只有一个8086微处理器,所有微处理器,所有的总线控制信号都直接由的总线控制信号都直接由8086 CPU产生,因此,系统中产生,因此,系统中的总线控制电路被减到最少。的总线控制电路被减到最少。最大模式系统中,总是包含两个或多个微处理器,其中一最大模式系统中,总是包含两个或多个微处理器,其中一个主处理器就是个主处理器就是8086,其他的处理器称为协处理器,它,其他的处理器称为协处理器,它们是协助主处理器工作的。们是协助主处理器工作的。当当CPU处于不同工作模式时,其部分引脚的功能是不同

9、处于不同工作模式时,其部分引脚的功能是不同的。的。1两种工作方式功能相同的引脚两种工作方式功能相同的引脚(1)AD15 AD0(address data bus):):地址地址/数据数据总线,双向,三态。总线,双向,三态。(2)A19/S6A16/S3(address/status):):地址地址/状态状态信号,输出,三态。信号,输出,三态。S6表示表示CPU与总线连接的情况,与总线连接的情况,S5指示当前中断允许标指示当前中断允许标志志IF的状态。的状态。S4,S3的代码组合用来指明当前正在使用的段寄存器。的代码组合用来指明当前正在使用的段寄存器。(3)/BHE/S7(bus high en

10、able/status):):允许总线允许总线高高8位数据传送位数据传送/状态信号,输出,三态。状态信号,输出,三态。/BHE为总线高为总线高8位数据允许信号,当位数据允许信号,当/BHE低电平有效时,低电平有效时,表明在高表明在高8位数据总线位数据总线D15 D8上传送上传送1个字节的数据。个字节的数据。S7为设备的状态信号。为设备的状态信号。(4)/RD(read):):读信号,输出,三态,低电平有效。读信号,输出,三态,低电平有效。/RD信号低电平有效时,表示信号低电平有效时,表示CPU正在进行读存储器或读正在进行读存储器或读I/O端口的操作。端口的操作。(5)READY(ready):

11、):准备就绪信号,输入,高电平准备就绪信号,输入,高电平有效。有效。READY信号用来实现信号用来实现CPU与存储器或与存储器或I/O端口之间的时序端口之间的时序匹配。匹配。当当READY信号高电平有效时,表示信号高电平有效时,表示CPU要访问的存储器要访问的存储器或或I/O端口已经作好了输入端口已经作好了输入/输出数据的准备工作,输出数据的准备工作,CPU可可以进行读以进行读/写操作。写操作。当当READY信号为低电平时,则表示存储器或信号为低电平时,则表示存储器或I/O端口还未端口还未准备就绪,准备就绪,CPU需要插入若干个需要插入若干个“TW状态状态”进行等待。进行等待。(6)INTR(

12、interrupt request):):可屏蔽中断请求信号,可屏蔽中断请求信号,输入,高电平有效。输入,高电平有效。8086 CPU在每条指令执行到最后一个时钟周期时,都要在每条指令执行到最后一个时钟周期时,都要检测检测INTR引脚信号。引脚信号。INTR为高电平时,表明有为高电平时,表明有I/O设备向设备向CPU申请中断,若申请中断,若IF1,CPU则会响应中断,停止当前的操作,为申请中断则会响应中断,停止当前的操作,为申请中断的的I/O设备服务。设备服务。(7)/TEST(test):):等待测试控制信号,输入,低电平等待测试控制信号,输入,低电平有效。有效。/TEST信号用来支持构成多

13、处理器系统,实现信号用来支持构成多处理器系统,实现8086 CPU与协处理器之间同步协调的功能,只有当与协处理器之间同步协调的功能,只有当CPU执行执行WAIT指令时才使用。指令时才使用。(8)NMI(non-maskable interrupt):):非屏蔽中断请非屏蔽中断请求信号,输入,高电平有效。求信号,输入,高电平有效。当当NMI引脚上有一个上升沿有效的触发信号时,表明引脚上有一个上升沿有效的触发信号时,表明CPU内部或内部或I/O设备提出了非屏蔽的中断请求,设备提出了非屏蔽的中断请求,CPU会在结束会在结束当前所执行的指令后,立即响应中断请求。当前所执行的指令后,立即响应中断请求。(

14、9)RESET(reset):):复位信号,输入,高电平有效。复位信号,输入,高电平有效。RESET信号有效时,信号有效时,CPU立即结束现行操作,处于复位立即结束现行操作,处于复位状态,初始化所有的内部寄存器。复位后各内部寄存器的状态,初始化所有的内部寄存器。复位后各内部寄存器的状态,见表状态,见表2.2。当。当RESET信号由高电平变为低电平时,信号由高电平变为低电平时,CPU从从FFFF0H地址开始重新启动执行程序。地址开始重新启动执行程序。(10)CLK(clock):):时钟信号,输入。时钟信号,输入。CLK为为CPU提供基本的定时脉冲信号。提供基本的定时脉冲信号。(11)VCC电源

15、输入引脚。电源输入引脚。(12)GND:接地引脚。接地引脚。(13)MN/MX(minimum/maximum):):最小最小/最大模最大模式输入控制信号。式输入控制信号。MN/MX引脚用来设置引脚用来设置8086 CPU的工作模式。当为高电的工作模式。当为高电平时,平时,CPU工作在最小模式;当工作在最小模式;当 为低电平时,为低电平时,CPU工作工作在最大模式。在最大模式。2CPU工作于最小模式时使用的引脚信号工作于最小模式时使用的引脚信号(1)M/IO(memory I/O select):):存储器、存储器、I/O端口选端口选择控制信号。择控制信号。(2)/WR(write):):写信

16、号,输出,低电平有效。写信号,输出,低电平有效。(3)/INTA(interrupt acknowledge):):可屏蔽中断响可屏蔽中断响应信号,输出,低电平有效。应信号,输出,低电平有效。(4)ALE(address lock enable):):地址锁存允许信地址锁存允许信号,输出,高电平有效。号,输出,高电平有效。CPU利用利用ALE信号可以把信号可以把AD15AD0地址地址/数据、数据、A19/S6A16/S3地址地址/状态线上的地址信息锁存在地址状态线上的地址信息锁存在地址锁存器中。锁存器中。(5)DT/R(data transmit or receive):):数据发送数据发送/

17、接接收信号,输出,三态。收信号,输出,三态。(6)/DEN(data enable):):数据允许控制信号,输出,数据允许控制信号,输出,三态,低电平有效。三态,低电平有效。(7)HOLD(bus hold request):):总线保持请求信号,总线保持请求信号,输入,高电平有效。输入,高电平有效。(8)HLDA(hold acknowledge):):总线保持响应信号,总线保持响应信号,输出,高电平有效。输出,高电平有效。3CPU工作于最大模式时使用的引脚信号工作于最大模式时使用的引脚信号(1)/S2,/S1,/S0(status signals):):总线周期状态信总线周期状态信号,输出

18、,低电平有效。号,输出,低电平有效。它们表明当前总线周期所进行的操作类型。它们表明当前总线周期所进行的操作类型。(2)/RQ/GT1,/RQ/GT0(request/grant):):总线请求总线请求允许信号输入允许信号输入/总线请求允许输出信号,双向,低电平有总线请求允许输出信号,双向,低电平有效。效。(3)/LOCK:(:(lock)总线封锁信号,输出,低电平有总线封锁信号,输出,低电平有效效(4)QS1,QS0(queue status):):指令队列状态信号,指令队列状态信号,输出。输出。QS1和和QS0信号的组合可以指示总线接口部件信号的组合可以指示总线接口部件BIU中指令中指令队列

19、的状态,以便其他处理器监视、跟踪指令队列的状态。队列的状态,以便其他处理器监视、跟踪指令队列的状态。QS1,QS0的代码组合与队列状态见表的代码组合与队列状态见表2.4。2.3 Intel 8086微处理器寄存器结构微处理器寄存器结构8086微处理器中包含四个通用数据寄存器、四个指针和微处理器中包含四个通用数据寄存器、四个指针和变址寄存器、四个段寄存器和一个标志寄存器。变址寄存器、四个段寄存器和一个标志寄存器。1通用数据寄存器(通用数据寄存器(general purpose registers)通用数据寄存器组包括四个通用数据寄存器组包括四个16位的寄存器位的寄存器AX,BX,CX,DX。它们

20、既可以作为它们既可以作为16位寄存器使用,也可以分为两个位寄存器使用,也可以分为两个8位寄位寄存器使用,即高存器使用,即高8位寄存器位寄存器AH,BH,CH,DH和低和低8位寄存位寄存器器AL,BL,CL,DL。这些寄存器既可以作为算术、逻辑运算的源操作数,向这些寄存器既可以作为算术、逻辑运算的源操作数,向ALU提供参与运算的原始数据,也可以作为目标操作数,提供参与运算的原始数据,也可以作为目标操作数,保存运算的中间结果或最后结果。保存运算的中间结果或最后结果。在有些指令中,这些寄存器具有特定的用途,例如,在有些指令中,这些寄存器具有特定的用途,例如,AX作为累加器;作为累加器;BX作为基址寄

21、存器;作为基址寄存器;CX作为计数寄存器;作为计数寄存器;DX作为数据寄存器。作为数据寄存器。2指针及变址寄存器(指针及变址寄存器(pointer and index registers)(1)指针寄存器)指针寄存器SP用来指示堆栈栈顶的偏移地址,称为堆栈指针;用来指示堆栈栈顶的偏移地址,称为堆栈指针;BP则用来存放位于堆栈段中的一个数据区的则用来存放位于堆栈段中的一个数据区的“基址基址”的的偏移量,称为基址指针。偏移量,称为基址指针。(2)变址寄存器)变址寄存器 SI,DI称为变址寄存器,它们用来存放当前数据所在存储称为变址寄存器,它们用来存放当前数据所在存储单元的偏移地址。单元的偏移地址。

22、在串操作指令中,在串操作指令中,SI用来存放源操作数地址的偏移量,称用来存放源操作数地址的偏移量,称为源变址寄存器;为源变址寄存器;DI用来存放目标操作数地址的偏移量,称为目标变址寄存用来存放目标操作数地址的偏移量,称为目标变址寄存器。器。3段寄存器(段寄存器(segment registers)指明了一个特定的现行段,用来存放各段的段基址。当用指明了一个特定的现行段,用来存放各段的段基址。当用户用指令设定了它们的初值后,实际上已经确定了一个户用指令设定了它们的初值后,实际上已经确定了一个64KB的存储区段。的存储区段。代码段寄存器代码段寄存器CS用来存放当前使用的代码段的段基址,用来存放当前

23、使用的代码段的段基址,用户编制的程序必须存放在代码段中,用户编制的程序必须存放在代码段中,CPU将会依次从将会依次从代码段取出指令代码并执行。代码段取出指令代码并执行。数据段寄存器数据段寄存器DS用来存放当前使用的数据段的段基址,用来存放当前使用的数据段的段基址,程序运行所需的原始数据以及运算的结果应存放在数据段程序运行所需的原始数据以及运算的结果应存放在数据段中。中。附加段寄存器附加段寄存器ES用来存放当前使用的附加段的段基址,用来存放当前使用的附加段的段基址,它通常也用来存放数据,但在数据串操作时,用来存放目它通常也用来存放数据,但在数据串操作时,用来存放目标数据串(此时标数据串(此时DS

24、用来存放源数据串)。用来存放源数据串)。堆栈段寄存器堆栈段寄存器SS用来存放当前使用的堆栈段的段基址,用来存放当前使用的堆栈段的段基址,所有堆栈操作的数据均保存在这个段中。所有堆栈操作的数据均保存在这个段中。4指令指针指令指针 IP(instruction pointer)为为16位指令指针,位指令指针,IP的内容总的内容总是指向是指向BIU将要取的下一条指令代码的将要取的下一条指令代码的16位偏移地址。位偏移地址。当取出当取出1个字节指令代码后,个字节指令代码后,IP自动加自动加1并指向下一条指并指向下一条指令代码的偏移地址。令代码的偏移地址。5标志寄存器标志寄存器 8086 CPU中有一个

25、中有一个16位的状态标志寄存器位的状态标志寄存器FR,但只使但只使用了用了9位。其中位。其中6位为状态标志位,用来反映算术运算或位为状态标志位,用来反映算术运算或逻辑运算结果的状态;逻辑运算结果的状态;3位为控制位,用来控制位为控制位,用来控制CPU的操的操作。作。(1)状态标志位)状态标志位 CF(carry flag):):进位标志。表示本次加法或减法运算进位标志。表示本次加法或减法运算中最高位(中最高位(D7或或D15)产生进位或借位的情况产生进位或借位的情况。CF1表表示有进位,示有进位,CF0表示无进位(减法时,表示借位情况)。表示无进位(减法时,表示借位情况)。PF(parity

26、flag):):奇偶校验标志。表示本次运算结果奇偶校验标志。表示本次运算结果中包含中包含“1”的个数。的个数。PF1表示有偶数个表示有偶数个“1”,PF0表示有奇数个表示有奇数个“1”。AF(auxiliary carry flag):):辅助进位标志。表示加法辅助进位标志。表示加法或减法运算结果中或减法运算结果中D3位向位向D4位产生进位或借位的情况。位产生进位或借位的情况。AF1表示有进位,表示有进位,AF0表示无进位(减法时,表示借表示无进位(减法时,表示借位情况)位情况)。ZF(zero flag):):零标志。表示当前的运算结果是否为零标志。表示当前的运算结果是否为零。零。ZF1表示

27、运算结果为零,表示运算结果为零,ZF0表示运算结果不为表示运算结果不为零。零。SF(sign flag):):符号标志。表示运算结果的正、负情符号标志。表示运算结果的正、负情况。况。SF1表示运算结果为负,表示运算结果为负,SF0表示运算结果为正。表示运算结果为正。OF(overflow flag):):溢出标志。表示运算过程中产生溢出标志。表示运算过程中产生溢出的情况。溢出的情况。OF1表示当前正在进行的补码运算有溢出,表示当前正在进行的补码运算有溢出,OF0表示无溢出。表示无溢出。(2)控制标志位)控制标志位 DF(direction flag):):方向标志。用来设定和控制字符方向标志。

28、用来设定和控制字符串操作指令的步进方向。串操作指令的步进方向。DF1时,串操作过程中的地址时,串操作过程中的地址会自动递减会自动递减1,DF0时,地址自动递增时,地址自动递增1。IF(interrupt enable flag):):中断允许标志。用来控制中断允许标志。用来控制可屏蔽中断的标志位。可屏蔽中断的标志位。IF1时,开中断,时,开中断,CPU可以接收可以接收可屏蔽中断请求,可屏蔽中断请求,IF0时,关中断,时,关中断,CPU不能接收可屏不能接收可屏蔽中断请求。蔽中断请求。TF(trap flag):):单步标志。用来控制单步标志。用来控制CPU进入单步工进入单步工作方式。作方式。TF

29、1时,时,8086 CPU处于单步工作方式,每执处于单步工作方式,每执行完一条指令就自动产生一次内部中断,行完一条指令就自动产生一次内部中断,TF0时,时,CPU不能以单步方式工作。不能以单步方式工作。CPU的单步工作方式为程序调试的单步工作方式为程序调试提供了一种重要的方法。提供了一种重要的方法。2.4 存储器的分段和物理地址的形成存储器的分段和物理地址的形成 8086 CPU将将1MB的存储器划分为若干个区段以后,每个的存储器划分为若干个区段以后,每个段包含段包含216个字节个字节,并且每个段的首地址是一个可以被并且每个段的首地址是一个可以被16整除的数(即段的起始地址的最低四位为整除的数

30、(即段的起始地址的最低四位为0)。)。存储空间的分段方式可以有多种多样,段与段之间可以部存储空间的分段方式可以有多种多样,段与段之间可以部分重叠、完全重叠或完全分离。分重叠、完全重叠或完全分离。若已知当前有效的代码段、数据段、附加段和堆栈段的段若已知当前有效的代码段、数据段、附加段和堆栈段的段基址分别为基址分别为1000H,3501H,7F3BH,EAB0H,那么它们那么它们在存储器中的分布情况如图所示。在存储器中的分布情况如图所示。(2)存储器中的逻辑地址和物理地址)存储器中的逻辑地址和物理地址逻辑地址由段基址(存放在段寄存器中)和偏移地址(由逻辑地址由段基址(存放在段寄存器中)和偏移地址(由寻址方式提供)两部分构成,它们都是无符号的寻址方式提供)两部分构成,它们都是无符号的16位二位二进制数。进制数。物理地址是物理地址是CPU访问内存时使用的地址。当用户通过编访问内存时使用的地址。当用户通过编制程序将制程序将16位逻辑地址送入位逻辑地址送入CPU的总线接口部件的总线接口部件BIU时,时,地址加法器通过地址运算变换为地址加法器通过地址运算变换为20位的物理地址。产生位的物理地址。产生20位物理地址的公式为:位物理地址的公式为:物理地址段基址物理地址段基址16偏移地址偏移地址

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁