




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章微处理器结构及基本原理,本章学习目标掌握微处理器的结构掌握微处理器的工作原理,2.1Intel8086微处理器内部结构,8086微处理器的主要特点:16位微处理器;数据总线16位;地址总线20位,可寻址1MB存储空间;时钟频率为510MHz。8086CPU的内部结构由执行单元EU(executionunit)和总线接口部件BIU(businterfaceunit)两部分组成。,Intel8086微处理器的内部结构如图所示。,1总线接口部件BIU总线接口部件BIU负责8086CPU与存储器和外设之间的信息传送。BIU负责从内存的指定区域取出指令,送至指令队列排队。在执行指令时所需要的操作数,也由BIU从内存的指定区域取出,传送给执行部件EU去执行。BIU包含一个地址加法器、一组16位的段寄存器、一个16位的指令指针IP、一个6字节的指令队列缓冲器及总线控制电路。,(1)地址加法器和段寄存器8086采用了分段结构,将1MB的内存空间划分为若干个逻辑段,在每个逻辑段中使用16位段基址和16位偏移地址进行寻址,段寄存器用来存放各段的段基址。利用BIU的地址加法器计算并形成CPU所要访问的存储单元地址(20位)或I/O端口地址(16位)。,(2)指令队列缓冲器指令队列缓冲器是6个字节的“先进先出”的RAM存储器,用来按顺序存放CPU要执行的指令代码,并送入执行部件EU中去执行。EU总是从指令队列的输出端取指令,每当指令队列中存满一条指令后,EU就立即开始执行。当指令队列中前两个指令字节被EU取走后,BIU就自动执行总线操作,读出指令并填入指令队列中。当程序发生跳转时,BIU则立即清除原来指令队列中的内容并重新开始读取指令代码。,(3)总线控制电路总线控制电路主要负责产生总线控制信号。,2执行部件EU从BIU的指令队列中取出指令、分析指令并执行指令,而执行指令过程中所需要的数据和执行的结果,也都由EU向BIU发出请求,再由BIU对存储器或外设进行存取操作来完成。EU部件主要由算术逻辑单元、标志寄存器、通用寄存器、指针寄存器、暂存寄存器、指令译码器和控制电路组成。,(1)算术逻辑单元ALUALU是一个16位的算术逻辑运算部件,用来对操作数进行算术运算和逻辑运算,也可以按指令的寻址方式计算出CPU要访问的内存单元的16位偏移地址。(2)数据暂存寄存器数据暂存寄存器是一个16位的寄存器,它的主要功能是暂时保存数据,并向ALU提供参与运算的操作数。(3)EU控制电路EU控制电路接收从BIU指令队列中取出的指令代码,经过分析、译码后形成各种实时控制信号,对各个部件进行实时操作。,2.2Intel8086微处理器引脚信号及功能,8086CPU是40引脚双列直插式芯片,微处理器通过这些引脚可以和存储器、I/O接口、外部控制管理部件,以及其他微处理器相互交换信息。最小模式,就是在系统中只有一个8086微处理器,所有的总线控制信号都直接由8086CPU产生,因此,系统中的总线控制电路被减到最少。最大模式系统中,总是包含两个或多个微处理器,其中一个主处理器就是8086,其他的处理器称为协处理器,它们是协助主处理器工作的。,当CPU处于不同工作模式时,其部分引脚的功能是不同的。,1两种工作方式功能相同的引脚(1)AD15AD0(addressdatabus):地址/数据总线,双向,三态。(2)A19/S6A16/S3(address/status):地址/状态信号,输出,三态。S6表示CPU与总线连接的情况,S5指示当前中断允许标志IF的状态。S4,S3的代码组合用来指明当前正在使用的段寄存器。,(3)/BHE/S7(bushighenable/status):允许总线高8位数据传送/状态信号,输出,三态。/BHE为总线高8位数据允许信号,当/BHE低电平有效时,表明在高8位数据总线D15D8上传送1个字节的数据。S7为设备的状态信号。(4)/RD(read):读信号,输出,三态,低电平有效。/RD信号低电平有效时,表示CPU正在进行读存储器或读I/O端口的操作。,(5)READY(ready):准备就绪信号,输入,高电平有效。READY信号用来实现CPU与存储器或I/O端口之间的时序匹配。当READY信号高电平有效时,表示CPU要访问的存储器或I/O端口已经作好了输入/输出数据的准备工作,CPU可以进行读/写操作。当READY信号为低电平时,则表示存储器或I/O端口还未准备就绪,CPU需要插入若干个“TW状态”进行等待。,(6)INTR(interruptrequest):可屏蔽中断请求信号,输入,高电平有效。8086CPU在每条指令执行到最后一个时钟周期时,都要检测INTR引脚信号。INTR为高电平时,表明有I/O设备向CPU申请中断,若IF1,CPU则会响应中断,停止当前的操作,为申请中断的I/O设备服务。(7)/TEST(test):等待测试控制信号,输入,低电平有效。/TEST信号用来支持构成多处理器系统,实现8086CPU与协处理器之间同步协调的功能,只有当CPU执行WAIT指令时才使用。,(8)NMI(non-maskableinterrupt):非屏蔽中断请求信号,输入,高电平有效。当NMI引脚上有一个上升沿有效的触发信号时,表明CPU内部或I/O设备提出了非屏蔽的中断请求,CPU会在结束当前所执行的指令后,立即响应中断请求。(9)RESET(reset):复位信号,输入,高电平有效。RESET信号有效时,CPU立即结束现行操作,处于复位状态,初始化所有的内部寄存器。复位后各内部寄存器的状态,见表2.2。当RESET信号由高电平变为低电平时,CPU从FFFF0H地址开始重新启动执行程序。,(10)CLK(clock):时钟信号,输入。CLK为CPU提供基本的定时脉冲信号。(11)VCC电源输入引脚。(12)GND:接地引脚。(13)MN/MX(minimum/maximum):最小/最大模式输入控制信号。MN/MX引脚用来设置8086CPU的工作模式。当为高电平时,CPU工作在最小模式;当为低电平时,CPU工作在最大模式。,2CPU工作于最小模式时使用的引脚信号(1)M/IO(memoryI/Oselect):存储器、I/O端口选择控制信号。(2)/WR(write):写信号,输出,低电平有效。(3)/INTA(interruptacknowledge):可屏蔽中断响应信号,输出,低电平有效。(4)ALE(addresslockenable):地址锁存允许信号,输出,高电平有效。CPU利用ALE信号可以把AD15AD0地址/数据、A19/S6A16/S3地址/状态线上的地址信息锁存在地址锁存器中。,(5)DT/R(datatransmitorreceive):数据发送/接收信号,输出,三态。(6)/DEN(dataenable):数据允许控制信号,输出,三态,低电平有效。(7)HOLD(busholdrequest):总线保持请求信号,输入,高电平有效。(8)HLDA(holdacknowledge):总线保持响应信号,输出,高电平有效。,3CPU工作于最大模式时使用的引脚信号(1)/S2,/S1,/S0(statussignals):总线周期状态信号,输出,低电平有效。它们表明当前总线周期所进行的操作类型。,(2)/RQ/GT1,/RQ/GT0(request/grant):总线请求允许信号输入/总线请求允许输出信号,双向,低电平有效。(3)/LOCK:(lock)总线封锁信号,输出,低电平有效(4)QS1,QS0(queuestatus):指令队列状态信号,输出。QS1和QS0信号的组合可以指示总线接口部件BIU中指令队列的状态,以便其他处理器监视、跟踪指令队列的状态。QS1,QS0的代码组合与队列状态见表2.4。,2.3Intel8086微处理器寄存器结构,8086微处理器中包含四个通用数据寄存器、四个指针和变址寄存器、四个段寄存器和一个标志寄存器。,1通用数据寄存器(generalpurposeregisters)通用数据寄存器组包括四个16位的寄存器AX,BX,CX,DX。它们既可以作为16位寄存器使用,也可以分为两个8位寄存器使用,即高8位寄存器AH,BH,CH,DH和低8位寄存器AL,BL,CL,DL。这些寄存器既可以作为算术、逻辑运算的源操作数,向ALU提供参与运算的原始数据,也可以作为目标操作数,保存运算的中间结果或最后结果。在有些指令中,这些寄存器具有特定的用途,例如,AX作为累加器;BX作为基址寄存器;CX作为计数寄存器;DX作为数据寄存器。,2指针及变址寄存器(pointerandindexregisters)(1)指针寄存器SP用来指示堆栈栈顶的偏移地址,称为堆栈指针;BP则用来存放位于堆栈段中的一个数据区的“基址”的偏移量,称为基址指针。(2)变址寄存器SI,DI称为变址寄存器,它们用来存放当前数据所在存储单元的偏移地址。在串操作指令中,SI用来存放源操作数地址的偏移量,称为源变址寄存器;DI用来存放目标操作数地址的偏移量,称为目标变址寄存器。,3段寄存器(segmentregisters)指明了一个特定的现行段,用来存放各段的段基址。当用户用指令设定了它们的初值后,实际上已经确定了一个64KB的存储区段。代码段寄存器CS用来存放当前使用的代码段的段基址,用户编制的程序必须存放在代码段中,CPU将会依次从代码段取出指令代码并执行。数据段寄存器DS用来存放当前使用的数据段的段基址,程序运行所需的原始数据以及运算的结果应存放在数据段中。,附加段寄存器ES用来存放当前使用的附加段的段基址,它通常也用来存放数据,但在数据串操作时,用来存放目标数据串(此时DS用来存放源数据串)。堆栈段寄存器SS用来存放当前使用的堆栈段的段基址,所有堆栈操作的数据均保存在这个段中。,4指令指针IP(instructionpointer)为16位指令指针,IP的内容总是指向BIU将要取的下一条指令代码的16位偏移地址。当取出1个字节指令代码后,IP自动加1并指向下一条指令代码的偏移地址。5标志寄存器8086CPU中有一个16位的状态标志寄存器FR,但只使用了9位。其中6位为状态标志位,用来反映算术运算或逻辑运算结果的状态;3位为控制位,用来控制CPU的操作。,(1)状态标志位CF(carryflag):进位标志。表示本次加法或减法运算中最高位(D7或D15)产生进位或借位的情况。CF1表示有进位,CF0表示无进位(减法时,表示借位情况)。PF(parityflag):奇偶校验标志。表示本次运算结果中包含“1”的个数。PF1表示有偶数个“1”,PF0表示有奇数个“1”。AF(auxiliarycarryflag):辅助进位标志。表示加法或减法运算结果中D3位向D4位产生进位或借位的情况。AF1表示有进位,AF0表示无进位(减法时,表示借位情况)。,ZF(zeroflag):零标志。表示当前的运算结果是否为零。ZF1表示运算结果为零,ZF0表示运算结果不为零。SF(signflag):符号标志。表示运算结果的正、负情况。SF1表示运算结果为负,SF0表示运算结果为正。OF(overflowflag):溢出标志。表示运算过程中产生溢出的情况。OF1表示当前正在进行的补码运算有溢出,OF0表示无溢出。,(2)控制标志位DF(directionflag):方向标志。用来设定和控制字符串操作指令的步进方向。DF1时,串操作过程中的地址会自动递减1,DF0时,地址自动递增1。IF(interruptenableflag):中断允许标志。用来控制可屏蔽中断的标志位。IF1时,开中断,CPU可以接收可屏蔽中断请求,IF0时,关中断,CPU不能接收可屏蔽中断请求。TF(trapflag):单步标志。用来控制CPU进入单步工作方式。TF1时,8086CPU处于单步工作方式,每执行完一条指令就自动产生一次内部中断,TF0时,CPU不能以单步方式工作。CPU的单步工作方式为程序调试提供了一种重要的方法。,2.4存储器的分段和物理地址的形成,8086CPU将1MB的存储器划分为若干个区段以后,每个段包含216个字节,并且每个段的首地址是一个可以被16整除的数(即段的起始地址的最低四位为0)。存储空间的分段方式可以有多种多样,段与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度酒店宾馆厕所升级改造承包合同
- 消防车操作讲解授课件视频
- 消防车创意课件图片大全
- 消防课件评分表制作
- 纪实摄影服务协议
- 幼儿园数字化管理平台建设协议
- 融资居间多人协议
- 环保产业设备采购与售后维护协议
- 农业技术推广与推广资金互助协议
- 广州九上期中数学试卷
- 军人心理健康课件
- 2025年综合类-国家统考科目-国家统考科目-第十三章我国社会保险的法规与政策历年真题摘选带答案(5卷100题)
- 2025年广东省中考物理试题卷(含答案)
- 劳动教育概论智慧树知到期末考试答案章节答案2024年哈尔滨工业大学
- 秒懂艺术那些事智慧树知到期末考试答案章节答案2024年商丘师范学院
- 湖北省2019年考试录用公务员全省法官助理职位资格复审公告
- JJF 1076-2020-数字式温湿度计校准规范-(高清现行)
- GB∕T 37050-2019 紧固螺纹检测体系
- GB 38454-2019 坠落防护 水平生命线装置
- 加油站夏季安全教育内容
- 《高速铁路竣工验收办法》
评论
0/150
提交评论