微处理器及指令系统.ppt
《微处理器及指令系统.ppt》由会员分享,可在线阅读,更多相关《微处理器及指令系统.ppt(276页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理与控制技术微机原理与控制技术 卢晓红卢晓红 第二章:第二章:x86 微处理器微处理器1第二章:第二章:x86x86微处理器微处理器2.1 8086/8088微处理器微处理器2.2 8086/8088存储器和存储器和I/O组织组织2.3 8086/8088中断系统中断系统2.4 8086/8088指令系统指令系统2.5 x86系列系列CPU的技术发展的技术发展2 28086/80888086/8088微处理器的结构。微处理器的结构。80868086微处理器的结构。微处理器的结构。8086/80888086/8088微处理器的寄存器结构微处理器的寄存器结构8086/80888086/808
2、8系统中的存储器分段与物理地址的形成。系统中的存储器分段与物理地址的形成。8086/80888086/8088微处理器的引脚功能和相关知识,达到微处理器的引脚功能和相关知识,达到“综合应用综合应用”层次。层次。8086/8088 CPU8086/8088 CPU的引脚信号和工作模式的引脚信号和工作模式 。8086/80888086/8088两种工作方式两种工作方式最小方式与最大方式的区别。最小方式与最大方式的区别。最小模式的典型配置最小模式的典型配置8086/80888086/8088微处理器的总线时序。微处理器的总线时序。三种周期三种周期指令周期、总线周期和时钟周期的区别及联系。指令周期、总
3、线周期和时钟周期的区别及联系。中断类型码,中断向量,中断子程序入口地址之间的联系中断类型码,中断向量,中断子程序入口地址之间的联系最小方式下的总线读最小方式下的总线读/写操作时序,最小方式下的总线请求写操作时序,最小方式下的总线请求/保持保持三态三态2.1 8086/80882.1 8086/8088微处理器微处理器本本 节节 要要 点点3 38086/80888086/8088微处理器是微处理器是IntelIntel公司推出的第三代公司推出的第三代CPUCPU芯片,芯片,它们的内部结构基本相同,都采用它们的内部结构基本相同,都采用1616位结构进行操作及存储位结构进行操作及存储器寻址,但外部
4、性能有所差异,两种处理器都封装在相同的器寻址,但外部性能有所差异,两种处理器都封装在相同的4040脚双列直插组件中。脚双列直插组件中。n2.1.0 80862.1.0 8086与与808880882.1 8086/80882.1 8086/8088微处理器微处理器4 42.1 8086/80882.1 8086/8088微处理器微处理器要了解一个要了解一个CPUCPU的工作性能和使用方法的工作性能和使用方法,首先应该了解其功能结构首先应该了解其功能结构(是指是指从程序员和使用者的角度看到的结构,亦可称为编程结构从程序员和使用者的角度看到的结构,亦可称为编程结构)。从功能。从功能上来看,上来看,
5、8086CPU8086CPU可分为两部分,即可分为两部分,即总线接口部件总线接口部件BIUBIU(Bus Bus Interface UnitInterface Unit)和)和执行部件执行部件EUEU(Execution UnitExecution Unit)。)。n2.1.1 80862.1.1 8086与与80888088微处理器的编程结构微处理器的编程结构5 52.1 8086/80882.1 8086/8088微处理器微处理器n总线接口部件(总线接口部件(BIUBIU)总线接口单元总线接口单元BIUBIU的功能是负责完成的功能是负责完成CPUCPU与存储器或与存储器或I/OI/O设备
6、之间的数据传送。具体任务是:设备之间的数据传送。具体任务是:指令队列出现空字节(指令队列出现空字节(8088CPU 18088CPU 1个空字节,个空字节,8086CPU28086CPU2个空字节个空字节)时,从内存取出后续指令。时,从内存取出后续指令。BIUBIU取指令时,并不影响取指令时,并不影响EUEU的执行,两者并行工作,大大的执行,两者并行工作,大大提高了提高了CPUCPU的执行速度。的执行速度。EUEU需要从内存或外设端口读取操作数时,根据需要从内存或外设端口读取操作数时,根据EUEU给给出的地址从内存或外设端口读取数据供出的地址从内存或外设端口读取数据供EUEU使用。使用。EUE
7、U的运算结果、数据或控制命令等由的运算结果、数据或控制命令等由BIUBIU送往指定的送往指定的内存单元或外设端口。内存单元或外设端口。6 62.1 8086/80882.1 8086/8088微处理器微处理器n总线接口部件的组成总线接口部件的组成4 4个个1616位段寄存器:位段寄存器:包括代码段寄存器包括代码段寄存器CS(Code Segment)CS(Code Segment)、数据段寄存器、数据段寄存器DSDS(Data Data Segment)Segment)、堆栈段寄存器、堆栈段寄存器SS(Stack Segment)SS(Stack Segment)和附加和附加数据段寄存器数据段
8、寄存器ES ES(Extra Segment)(Extra Segment);1 1个个1616位的指令指针寄存器位的指令指针寄存器IP IP(Instruction Pointer)(Instruction Pointer);1 1个个2020位地址加法器;位地址加法器;6 6字节指令队列缓冲器;字节指令队列缓冲器;1 1个与个与EUEU通讯的内部寄存器;通讯的内部寄存器;总线控制电路等。总线控制电路等。7 72.1 8086/80882.1 8086/8088微处理器微处理器n段寄存器段寄存器8086CPU8086CPU的地址引脚有的地址引脚有2020根根,能提供,能提供2020位的地址信
9、息,可直接对位的地址信息,可直接对1M1M个存储单元进行访问,但个存储单元进行访问,但CPUCPU内部可用来提供地址信息的寄存器内部可用来提供地址信息的寄存器都是都是1616位的位的,为了用,为了用1616位寄存器实现位寄存器实现2020位地址的寻址,位地址的寻址,8086/80888086/8088采用了段结构的内存管理的方法。采用了段结构的内存管理的方法。将指令代码和数据分别存储在代码段、数据段、堆栈段、附加数据段将指令代码和数据分别存储在代码段、数据段、堆栈段、附加数据段中,这些段的段地址分别由段寄存器中,这些段的段地址分别由段寄存器CSCS、DSDS、SSSS、ESES提供,而代提供,
10、而代码或数据在段内的偏移地址则由有关寄存器或立即数给出。码或数据在段内的偏移地址则由有关寄存器或立即数给出。8 82.1 8086/80882.1 8086/8088微处理器微处理器代码段寄存器代码段寄存器CSCS存储程序当前使用的代码段的段地址。代码段存储程序当前使用的代码段的段地址。代码段用来存放程序的指令代码。下一条要读取指令在代码段中的偏移用来存放程序的指令代码。下一条要读取指令在代码段中的偏移地址由指令指针寄存器地址由指令指针寄存器IPIP提供;提供;数据段寄存器数据段寄存器DSDS用来存放程序当前使用的数据段的段地址。一用来存放程序当前使用的数据段的段地址。一般来说,程序中所用到的
11、原始数据、中间结果以及最终结果都存般来说,程序中所用到的原始数据、中间结果以及最终结果都存放在数据段中,如果程序中使用了字符串处理指令,则源字符串放在数据段中,如果程序中使用了字符串处理指令,则源字符串也存放在数据段中;也存放在数据段中;堆栈段寄存器堆栈段寄存器SSSS用来存放程序当前所使用的堆栈段的段地址。用来存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域;堆栈是在存储器中开辟的一个特定区域;附加数据段寄存器附加数据段寄存器ESES用来存放程序当前使用的附加数据段的段用来存放程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。地址。附加数
12、据段通常用于存放字符串操作时的目的字符串。n段寄存器段寄存器9 92.1 8086/80882.1 8086/8088微处理器微处理器n段寄存器段寄存器8086/80888086/8088段寄存器与提供段内偏移地址的寄存器之间的默认组合段寄存器与提供段内偏移地址的寄存器之间的默认组合段寄存器段寄存器提供段内偏移地址的寄存器提供段内偏移地址的寄存器CSCSIPIPDSDSBXBX、SISI、DIDI或一个或一个1616位数位数SSSSSPSP或或BPBPESESDI(DI(用于字符串操作指令用于字符串操作指令)10102.1 8086/80882.1 8086/8088微处理器微处理器n指令指针
13、寄存器指令指针寄存器IPIP指令指针寄存器指令指针寄存器IPIP用来存放下一条要读取的指令在代用来存放下一条要读取的指令在代码段中的偏移地址。码段中的偏移地址。IPIP在程序运行中能自动加在程序运行中能自动加1 1修正,修正,从而使其始终存放的是下一条要读取的指令在代码段从而使其始终存放的是下一条要读取的指令在代码段的偏移地址。的偏移地址。由于由于CSCS和和IPIP的内容决定了程序的执行顺序,因此程的内容决定了程序的执行顺序,因此程序员序员不能直接用赋值指令不能直接用赋值指令对其内容进行修改。对其内容进行修改。有些指令能使有些指令能使IPIP和和CSCS的值改变(如跳转指令)或使的值改变(如
14、跳转指令)或使其值压入堆栈或从堆栈中弹出恢复原值(如子程序调其值压入堆栈或从堆栈中弹出恢复原值(如子程序调用指令和返回指令用指令和返回指令)11112.1 8086/80882.1 8086/8088微处理器微处理器n2020位地址加法器位地址加法器8086/80888086/8088系统中存储器按字节编址,可寻址系统中存储器按字节编址,可寻址1M1M字节,由于字节,由于1M1M字节字节是是2 2的的2020次方,因此,每个字节所对应的地址应是次方,因此,每个字节所对应的地址应是2020位,这位,这2020位的地址位的地址称为物理地址称为物理地址/绝对地址,物理地址由逻辑地址变换而来绝对地址,
15、物理地址由逻辑地址变换而来 ;逻辑地址由;逻辑地址由段基址和偏移地址两部分构成,段基址和偏移地址都是无符号的段基址和偏移地址两部分构成,段基址和偏移地址都是无符号的1616位二位二进制数。段基址存放在段寄存器中,偏移地址存放在进制数。段基址存放在段寄存器中,偏移地址存放在IPIP或者或者SPSP中。中。CPUCPU提供的用来对存储单元进行访问的提供的用来对存储单元进行访问的2020位地址是由位地址是由BIUBIU中的地址加中的地址加法器产生的。法器产生的。物理地址物理地址=段基址段基址X16+偏移地址偏移地址例如:例如:CS=2000H,指令指针寄存器,指令指针寄存器存放的是偏移地址存放的是偏
16、移地址IP=2200H,存储器的物理地址为,存储器的物理地址为20000H+2200H=22200H。12122.1 8086/80882.1 8086/8088微处理器微处理器n指令队列缓冲器指令队列缓冲器80868086的指令队列有的指令队列有6 6个字节个字节,80888088的指令队列有的指令队列有4 4个字节个字节。对。对80868086而言,当指令队列出现而言,当指令队列出现2 2个空字节,对个空字节,对80888088而言,指令队列出现而言,指令队列出现1 1个空字个空字节时,节时,BIUBIU就自动执行一次取指令周期,将下一条要执行的指令从内存单就自动执行一次取指令周期,将下一
17、条要执行的指令从内存单元读入指令队列。它们采用元读入指令队列。它们采用“先进先出先进先出”原则,按顺序存放,并按顺序取原则,按顺序存放,并按顺序取到到EUEU中去执行。中去执行。当当EUEU执行一条需要到存储器或执行一条需要到存储器或I/OI/O端口读取操作数的指令时,端口读取操作数的指令时,BIUBIU将将在执行完现行取指令的存储器周期后的下一个存储周期,对指令所指定的在执行完现行取指令的存储器周期后的下一个存储周期,对指令所指定的存储单元或存储单元或I/OI/O端口进行访问,读取的操作数经端口进行访问,读取的操作数经BIUBIU送送EUEU进行处理。进行处理。当当EUEU执行跳转、子程序调
18、用或返回指令时,执行跳转、子程序调用或返回指令时,BIUBIU就使指令队列复位,就使指令队列复位,并从指令给出的新地址开始取指令,新取的第并从指令给出的新地址开始取指令,新取的第1 1条指令直接经指令队列送条指令直接经指令队列送EUEU执行,随后取来的指令将填入指令队列缓冲器。执行,随后取来的指令将填入指令队列缓冲器。13132.1 8086/80882.1 8086/8088微处理器微处理器BIUBIU和和EUEU的动作协调原则的动作协调原则BIUBIU和和EUEU按以下流水线技术原则协调工作,共同完成所要求的任务:按以下流水线技术原则协调工作,共同完成所要求的任务:每当每当80868086
19、的指令队列中有两个空字节,的指令队列中有两个空字节,BIUBIU就会自动把指令取到指令就会自动把指令取到指令队列中。其取指的顺序是按指令在程序中出现的前后顺序。队列中。其取指的顺序是按指令在程序中出现的前后顺序。每当每当EUEU准备执行一条指令时,它会从准备执行一条指令时,它会从BIUBIU部件的指令队列前部取出指部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者果必须访问存储器或者I IOO端口,那么端口,那么EUEU就会请求就会请求BIUBIU,进入总线周期,进入总线周期,
20、完成访问内存或者完成访问内存或者I IOO端口的操作;如果此时端口的操作;如果此时BIUBIU正好处于空闲状态,正好处于空闲状态,会立即响应会立即响应EUEU的总线请求。如的总线请求。如BIUBIU正将某个指令字节取到指令队列中,正将某个指令字节取到指令队列中,则则BIUBIU将首先完成这个取指令的总线周期,然后再去响应将首先完成这个取指令的总线周期,然后再去响应EUEU发出的访问发出的访问总线的请求。总线的请求。当指令队列已满,且当指令队列已满,且EUEU又没有总线访问请求时,又没有总线访问请求时,BIUBIU便进入空闲状态。便进入空闲状态。在执行转移指令、调用指令和返回指令时,由于待执行指
21、令的顺序发在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,生了变化,则指令队列中已经装入的字节被自动消除,BIUBIU会接着往指会接着往指令队列装入转向的另一程序段中的指令代码。令队列装入转向的另一程序段中的指令代码。14142.1 8086/80882.1 8086/8088微处理器微处理器BIUBIU和和EUEU的动作协调原则的动作协调原则指令队列的引入使得指令队列的引入使得EUEU和和BIUBIU可并行工作,即可并行工作,即BIUBIU在读指令时,并不影响在读指令时,并不影响EUEU单元执行指令,单元执行指令,EUEU单元可以连
22、续不断地直接从指令队列中取到要执行的指令代单元可以连续不断地直接从指令队列中取到要执行的指令代码,从而减少了码,从而减少了CPUCPU为取指令而等待的时间,提高了为取指令而等待的时间,提高了CPUCPU的利用率,加快了整的利用率,加快了整机的运行速度。机的运行速度。指令队列可以被看成是一个特殊的指令队列可以被看成是一个特殊的RAMRAM,它的工作原理是,它的工作原理是“先进先出先进先出”,写入,写入的指令只能存放在队列尾,读出的指令是队列头存放的指令。的指令只能存放在队列尾,读出的指令是队列头存放的指令。EUEU和和BIUBIU之间就之间就是通过指令队列协调工作。是通过指令队列协调工作。151
23、52.1 8086/80882.1 8086/8088微处理器微处理器n执行单元执行单元EUEU执行单元执行单元EUEU不与系统外部直接相连,它的功能只是负责执行指令。不与系统外部直接相连,它的功能只是负责执行指令。执行执行的指令从的指令从BIUBIU的指令队列缓冲器中直接得到,执行指令时若需要从存储器的指令队列缓冲器中直接得到,执行指令时若需要从存储器或或I/OI/O端口读取操作数时,由端口读取操作数时,由EUEU向向BIUBIU发出请求,再由发出请求,再由BIUBIU对存储器或对存储器或I/OI/O端口进行访问。端口进行访问。EUEU由下列部件组成:由下列部件组成:1 1)1616位算术逻
24、辑单元位算术逻辑单元(ALU)(ALU):进行算进行算术和逻辑运算;术和逻辑运算;2 2)1616位标志寄存器(位标志寄存器(FRFR)FLAGSFLAGS:存放运算的状态特征和控制标志;存放运算的状态特征和控制标志;3 3)数据暂存寄存器:数据暂存寄存器:协助协助ALUALU完成运完成运算,暂存参加运算的数据;算,暂存参加运算的数据;16164 4)四个通用寄存器:四个通用寄存器:4 4个个1616位数位数据寄存器(据寄存器(AXAX、BXBX、CXCX、DXDX)5 5)四个专用寄存器,)四个专用寄存器,即基数指针即基数指针寄存器寄存器BPBP,堆栈指针寄存器,堆栈指针寄存器SPSP,源变
25、址寄存器源变址寄存器SISI,目的变址寄存,目的变址寄存器器DIDI;6 6)EUEU控制电路控制电路:控制、定时与:控制、定时与状态逻辑电路,接收从状态逻辑电路,接收从BIUBIU指令队指令队列取来的指令,经过指令译码形列取来的指令,经过指令译码形成各种定时控制信号,对成各种定时控制信号,对EUEU的各的各个部件实现特定的定时操作个部件实现特定的定时操作.2.1 8086/80882.1 8086/8088微处理器微处理器17172.1 8086/80882.1 8086/8088微处理器微处理器n通用寄存器通用寄存器AXAX、BXBX、CXCX、DXDX数据寄存器一般用于存放参与运算的操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微处理器 指令系统
限制150内