第三章计算机原理与操作系统PPT讲稿.ppt
第三章计算机原理与操作系统第三章计算机原理与操作系统第1页,共179页,编辑于2022年,星期二3.1 CPU3.1 CPU的组成及工作原理的组成及工作原理 CPUCPU概念:概念:中央处理器中央处理器(CPU :Central Processing (CPU :Central Processing Unit)Unit)是整个计算机的核心。是整个计算机的核心。传统的传统的CPUCPU组成:组成:运算器、控制器。(在诺曼机的定义运算器、控制器。(在诺曼机的定义中)中)现代的现代的CPUCPU的基本部分有:的基本部分有:运算器、运算器、CacheCache和控制器。和控制器。CPU CPU 是控制并执行指令的部件,该部件不仅要与计是控制并执行指令的部件,该部件不仅要与计算机的其它功能部件进行信息交换,还要控制它们的操算机的其它功能部件进行信息交换,还要控制它们的操作。作。第2页,共179页,编辑于2022年,星期二CPUCPU的基本功能:的基本功能:1、能够进行算术运算和逻辑运算;、能够进行算术运算和逻辑运算;2、能对指令进行译码、寄存并执行指令所规定的操、能对指令进行译码、寄存并执行指令所规定的操作;作;3、具有与存储器和、具有与存储器和I/O接口进行数据通信的能力;接口进行数据通信的能力;4、少量数据的暂存;、少量数据的暂存;5、能够提供系统所需的定时和控制信号;、能够提供系统所需的定时和控制信号;6、能够响应输入输出设备发出的中断请求。、能够响应输入输出设备发出的中断请求。第3页,共179页,编辑于2022年,星期二一、一、CPU的一般结构及工作原理的一般结构及工作原理uCPU的一般结构的一般结构第4页,共179页,编辑于2022年,星期二一条指令在微处理器中执行的过程如下:一条指令在微处理器中执行的过程如下:一条指令在微处理器中执行的过程如下:一条指令在微处理器中执行的过程如下:1 1、程序计数器、程序计数器、程序计数器、程序计数器PCPC指出当前指令地址,并且把指令地址放到地址总指出当前指令地址,并且把指令地址放到地址总指出当前指令地址,并且把指令地址放到地址总指出当前指令地址,并且把指令地址放到地址总线上,然后为取下一条指令做好准备。线上,然后为取下一条指令做好准备。线上,然后为取下一条指令做好准备。线上,然后为取下一条指令做好准备。2 2、由数据总线将指令从存储器中取出,送至寄存器,经指令译码,控制、由数据总线将指令从存储器中取出,送至寄存器,经指令译码,控制、由数据总线将指令从存储器中取出,送至寄存器,经指令译码,控制、由数据总线将指令从存储器中取出,送至寄存器,经指令译码,控制电路产生完成该指令的各种控制信号。电路产生完成该指令的各种控制信号。电路产生完成该指令的各种控制信号。电路产生完成该指令的各种控制信号。3 3、取出该指令所需的操作数地址和数据、取出该指令所需的操作数地址和数据、取出该指令所需的操作数地址和数据、取出该指令所需的操作数地址和数据4 4、完成该指令的操作。、完成该指令的操作。、完成该指令的操作。、完成该指令的操作。5 5、检查有无其它控制信号,并作出相应处理。、检查有无其它控制信号,并作出相应处理。、检查有无其它控制信号,并作出相应处理。、检查有无其它控制信号,并作出相应处理。6 6、提供指示处理器状态的标志信号、控制信号及定时信号等。、提供指示处理器状态的标志信号、控制信号及定时信号等。、提供指示处理器状态的标志信号、控制信号及定时信号等。、提供指示处理器状态的标志信号、控制信号及定时信号等。第5页,共179页,编辑于2022年,星期二1、算术逻辑运算部件、算术逻辑运算部件ALUu数据来源:数据来源:内部寄存器、外部数据总线(存储器)内部寄存器、外部数据总线(存储器)u主要功能:主要功能:1、执行各种算术运算,给出相应的标志位;、执行各种算术运算,给出相应的标志位;2、执行各种逻辑运算,并进行逻辑测试。、执行各种逻辑运算,并进行逻辑测试。通常,一个算术操作产生一个运算结果,而通常,一个算术操作产生一个运算结果,而一个逻辑操作则产生一个判决。一个逻辑操作则产生一个判决。第6页,共179页,编辑于2022年,星期二完成算术逻辑操作的有关部件(运算器)第7页,共179页,编辑于2022年,星期二u为什么要设置暂存器和锁存器为什么要设置暂存器和锁存器1)暂存器)暂存器如果是一个操作数,用累加器就能解决,两如果是一个操作数,用累加器就能解决,两个操作数就必须将别一个暂存到暂存器。个操作数就必须将别一个暂存到暂存器。2)锁存器)锁存器ALU本身没有寄存功能,其结果会马上占用本身没有寄存功能,其结果会马上占用内部总线。如何将累加器的结果保存下来,又不内部总线。如何将累加器的结果保存下来,又不再反馈到再反馈到ALU的输入端,所以设置了锁存器。的输入端,所以设置了锁存器。第8页,共179页,编辑于2022年,星期二u标志寄存器标志寄存器F又称为状态寄存器,用来保存算术或逻辑又称为状态寄存器,用来保存算术或逻辑运算的状态,如运算结果进位标志运算的状态,如运算结果进位标志(Carry)、溢出标志溢出标志(Overflow)、零标志、零标志(Zero)、奇偶、奇偶性标志性标志(Parity)、符号标志、符号标志(Sign)等等。等等。第9页,共179页,编辑于2022年,星期二2、控制部件、控制部件控制部件的作用是控制程序的执行,是整个控制部件的作用是控制程序的执行,是整个系统的指挥中心,必须具备如下基本功能:系统的指挥中心,必须具备如下基本功能:指令控制:指令控制:计算机的工作过程就是连续执行计算机的工作过程就是连续执行指令的过程。指令在存储器中是连续存放的,按指令的过程。指令在存储器中是连续存放的,按照顺序一条条取出执行。控制器要根据指令所在照顺序一条条取出执行。控制器要根据指令所在的地址取出指令,分析指令。的地址取出指令,分析指令。操作控制:操作控制:管理并产生由内存取出的每条指管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。从而控制这些部件按指令的要求进行动作。第10页,共179页,编辑于2022年,星期二时序控制:时序控制:对各种操作实施时间上的定时,称对各种操作实施时间上的定时,称为时序控制。为时序控制。数据加工:数据加工:所谓数据加工,就是对数据进行算所谓数据加工,就是对数据进行算术运算和逻辑运算处理。术运算和逻辑运算处理。第11页,共179页,编辑于2022年,星期二控制器内部主要由以下几个部分组成:控制器内部主要由以下几个部分组成:程序计数器程序计数器PC(programcounter):用来存放下一条要用来存放下一条要执行的指令在存储器中的地址。执行的指令在存储器中的地址。指令寄存器指令寄存器IR(instructionregister):用来存放从存储用来存放从存储器中取出的待执行的指令。器中取出的待执行的指令。指令译码器指令译码器ID(instructiondecoder):对指令进行对指令进行“翻译翻译”,确定要进行什么样的操作。,确定要进行什么样的操作。控制电路控制电路:根据分析,发出控制信号,完成该指令的根据分析,发出控制信号,完成该指令的所有操作。所有操作。第12页,共179页,编辑于2022年,星期二3、寄存器部件、寄存器部件寄存器是用来暂时保存运算和控制过程中的寄存器是用来暂时保存运算和控制过程中的原始数据、中间结果、最终结果以及控制、状态原始数据、中间结果、最终结果以及控制、状态信息的,分为通用寄存器和专用寄存器两大类。信息的,分为通用寄存器和专用寄存器两大类。u通用寄存器和专用寄存器通用寄存器和专用寄存器1)通用寄存器)通用寄存器用来存放原始数据和运算结果,有的还可以用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。现代计作为变址寄存器、计数器、地址指针等。现代计算机中为了减少访问存储器的次数,提高运算速算机中为了减少访问存储器的次数,提高运算速度,往往设置大量的通用寄存器。通用寄存器一度,往往设置大量的通用寄存器。通用寄存器一般可以由般可以由CPU直接访问。直接访问。第13页,共179页,编辑于2022年,星期二2)专用寄存器)专用寄存器专门用来完成某一特殊功能寄存器。专门用来完成某一特殊功能寄存器。它们是:指令寄存器(它们是:指令寄存器(IR)、程序计数器)、程序计数器(PC)、地址寄存器()、地址寄存器(AR)、缓冲寄存器)、缓冲寄存器(DR)、累加寄存器()、累加寄存器(AC)、状态条件寄存)、状态条件寄存器(器(PSW)。)。第14页,共179页,编辑于2022年,星期二u采用多寄存器结构的目的采用多寄存器结构的目的1)可补偿采用单总线的速度损失)可补偿采用单总线的速度损失2)可实现取指令和执行指令的并行操作)可实现取指令和执行指令的并行操作3)可以保存中间结果)可以保存中间结果4)给编程带来灵活性)给编程带来灵活性第15页,共179页,编辑于2022年,星期二u堆栈和堆栈指针堆栈和堆栈指针1)设置堆栈的目的)设置堆栈的目的调用子程序和中断处理时,要保存现场信息,调用子程序和中断处理时,要保存现场信息,如中间结查、标志等。子程序或中断处理结束后如中间结查、标志等。子程序或中断处理结束后要恢复现场信息,为此在内存中需要专门开辟一要恢复现场信息,为此在内存中需要专门开辟一专用空间来保存上述信息,此谓堆栈。专用空间来保存上述信息,此谓堆栈。那为什么那为什么要设这个堆栈呢:原因很简单:如果要存放一批要设这个堆栈呢:原因很简单:如果要存放一批数据,每一个数据都需要记住其所在的地址单元,数据,每一个数据都需要记住其所在的地址单元,比较麻烦。如果规定数据一定是一个接一个地存比较麻烦。如果规定数据一定是一个接一个地存放,那么只要知道第一个数据所在的单元地址就放,那么只要知道第一个数据所在的单元地址就可以了可以了第16页,共179页,编辑于2022年,星期二2 2)堆栈的工作方式)堆栈的工作方式)堆栈的工作方式)堆栈的工作方式堆栈就是这样一种数据结构。它是在内存中开辟一个存储区堆栈就是这样一种数据结构。它是在内存中开辟一个存储区堆栈就是这样一种数据结构。它是在内存中开辟一个存储区堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是域,数据一个一个顺序地存入(也就是域,数据一个一个顺序地存入(也就是域,数据一个一个顺序地存入(也就是“压入压入压入压入push”push”)这个区)这个区)这个区)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做放入数据的单元叫做放入数据的单元叫做放入数据的单元叫做“栈底栈底栈底栈底”。数据一个一个地存入,这个过程。数据一个一个地存入,这个过程。数据一个一个地存入,这个过程。数据一个一个地存入,这个过程叫做叫做叫做叫做“压栈压栈压栈压栈”。在压栈的过程中,每有一个数据压入堆栈,就放。在压栈的过程中,每有一个数据压入堆栈,就放。在压栈的过程中,每有一个数据压入堆栈,就放。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加动加动加动加1 1。读取这些数据时,按照堆栈指示器中的地址读取数据,堆。读取这些数据时,按照堆栈指示器中的地址读取数据,堆。读取这些数据时,按照堆栈指示器中的地址读取数据,堆。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减栈指示器中的地址数自动减栈指示器中的地址数自动减栈指示器中的地址数自动减1 1。这个过程叫做。这个过程叫做。这个过程叫做。这个过程叫做“弹出弹出弹出弹出pop”pop”。如此。如此。如此。如此就实现了后进先出的原则。就实现了后进先出的原则。就实现了后进先出的原则。就实现了后进先出的原则。uu栈栈栈栈:后进先出:后进先出:后进先出:后进先出(Last-In/First-Out)(Last-In/First-Out)第17页,共179页,编辑于2022年,星期二uCPU的工作流程的工作流程CPU的工作原理就像一个工厂对产品的加工的工作原理就像一个工厂对产品的加工过程过程:进入工厂的原料进入工厂的原料(程序指令程序指令),经过物资分配,经过物资分配部门部门(控制单元控制单元)的调度分配,被送往生产线的调度分配,被送往生产线(逻辑逻辑运算单元运算单元),生产出成品,生产出成品(处理后的数据处理后的数据)后,再存后,再存储在仓库储在仓库(存储单元存储单元)中,最后等着拿到市场上去中,最后等着拿到市场上去卖卖(交由应用程序使用交由应用程序使用)。在这个过程中,我们注。在这个过程中,我们注意到从控制单元开始,意到从控制单元开始,CPU就开始了正式的工作,就开始了正式的工作,中间的过程是通过逻辑运算单元来进行运算处理,中间的过程是通过逻辑运算单元来进行运算处理,交到存储单元代表工作的结束。交到存储单元代表工作的结束。第18页,共179页,编辑于2022年,星期二二、二、8086CPU及其工作原理及其工作原理第19页,共179页,编辑于2022年,星期二1、80X86微处理器芯片的性能指标微处理器芯片的性能指标uu字长字长uu指令数指令数uu运算速度运算速度uu访问内存储器空间访问内存储器空间uu虚拟存储空间虚拟存储空间uu多处理器系统多处理器系统uu指令作业方式指令作业方式uu芯片制造工艺芯片制造工艺第20页,共179页,编辑于2022年,星期二字长决定了决定了CPU表示数据的精度表示数据的精度提高了提高了CPU的相对运行速度的相对运行速度典型典型CPU字长字长CPU并行处理数据的位数,并行处理数据的位数,与数据总线宽度有关。与数据总线宽度有关。80888bit80888bit808616bit808616bit8038632bit8038632bitPentium32bitPentium32bit,6464bitbit第21页,共179页,编辑于2022年,星期二指令数指令数基本指令基本指令133条条扩展指令数千条扩展指令数千条确定了确定了CPU能执行的功能。能执行的功能。功能不同指令助记符形式不同功能不同指令助记符形式不同不同寻址方式和不同寄存器的组合不同寻址方式和不同寄存器的组合第22页,共179页,编辑于2022年,星期二运算速度运算速度计算机完成操作的时间指标。计算机完成操作的时间指标。u用指令执行时间测量(单位用指令执行时间测量(单位s)u用每秒执行指令数测量用每秒执行指令数测量(单位单位MIPS)。)。u提高速度的方法提高速度的方法 提高提高提高提高CPUCPU主频主频主频主频 减少指令执行所需时钟周期数减少指令执行所需时钟周期数减少指令执行所需时钟周期数减少指令执行所需时钟周期数 增加数据线条数增加数据线条数增加数据线条数增加数据线条数 取指令和执行指令时间重叠取指令和执行指令时间重叠取指令和执行指令时间重叠取指令和执行指令时间重叠 双双双双CPUCPU第23页,共179页,编辑于2022年,星期二访存空间访存空间Z80CPUAB=16访存空间访存空间=216=64K8086CPUAB=20访存空间访存空间=220=1M80286CPUAB=24访存空间访存空间=224=16M80386CPUAB=32访存空间访存空间=232=4GCPU能访问的内存储器单元容量,能访问的内存储器单元容量,与地址总线宽度有关。与地址总线宽度有关。第24页,共179页,编辑于2022年,星期二虚拟存储空间虚拟存储空间 用硬件和软件的综合技术来用硬件和软件的综合技术来扩大用户可用存储空间。扩大用户可用存储空间。u u主存储器是基础主存储器是基础u u高速缓存很重要高速缓存很重要u u外存储器是根本外存储器是根本第25页,共179页,编辑于2022年,星期二多处理器系统多处理器系统微处理器微处理器 协处理器。协处理器。u u微处理器完成系统的主要功能微处理器完成系统的主要功能u u协处理器完成系统的特殊功能协处理器完成系统的特殊功能 微处理器芯片微处理器芯片微处理器芯片微处理器芯片80868086 浮点协处理协处理器芯片浮点协处理协处理器芯片浮点协处理协处理器芯片浮点协处理协处理器芯片80878087 控制总线协处理器芯片控制总线协处理器芯片控制总线协处理器芯片控制总线协处理器芯片82888288第26页,共179页,编辑于2022年,星期二指令作业方式指令作业方式取指令与执行指令的时间分配。取指令与执行指令的时间分配。u 取指令与执行指令分时进行取指令与执行指令分时进行 u 取指令与执行指令同时进行取指令与执行指令同时进行 传统传统8位位CPU工作方式工作方式80X86CPU工作方式工作方式第27页,共179页,编辑于2022年,星期二芯片制造工艺芯片制造工艺工艺的改进带来更高的芯片集成度。工艺的改进带来更高的芯片集成度。u集成度从早期的每片数千个晶体管数量级集成度从早期的每片数千个晶体管数量级到近期的每片数百万个晶体管数量级。到近期的每片数百万个晶体管数量级。u线条宽度从微米级到纳米级线条宽度从微米级到纳米级u 主频从数兆赫兹到数千兆赫兹。主频从数兆赫兹到数千兆赫兹。第28页,共179页,编辑于2022年,星期二 8 80 08 86 6/8 80 08 88 8C CP PU U 功功功功能能能能结结结结构构构构图图图图EU控控制制器器ALU暂暂存存器器标志寄存器标志寄存器8位队列位队列总线总线总总线线控控制制逻逻辑辑内部总线内部总线16位位地址加法器地址加法器20位地位地址总线址总线16位位数数据据总总线线执执行行部部件件EU总总线线接接口口部部件件BIU123456指令队列指令队列通用寄存器通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISICSDSSSES8088808880868086IP暂存器暂存器8 80 08 86 6总总总总线线线线2、8086CPU内部结构内部结构第29页,共179页,编辑于2022年,星期二8086CPU从功能上可分为下面两个部分从功能上可分为下面两个部分uu执行部件执行部件EU(ExecutionUnit)8086CPU的核心,只负责执行指令,分析指令,的核心,只负责执行指令,分析指令,暂存中间运算结果并保留结果的特征。暂存中间运算结果并保留结果的特征。uu接口部件接口部件BIU(BusInterfaceUnit)负责负责CPU与存储器、与存储器、I/O接口之间的信息传送。接口之间的信息传送。第30页,共179页,编辑于2022年,星期二执行部件的组成执行部件的组成u16位运算器位运算器ALUu8位控制单元位控制单元u16位寄存器组位寄存器组u u 算术及逻辑运算算术及逻辑运算算术及逻辑运算算术及逻辑运算u u1616位偏移地址运算位偏移地址运算位偏移地址运算位偏移地址运算(80868086特点)特点)特点)特点)u u 从从从从BIUBIU的指令队列中取指令的指令队列中取指令的指令队列中取指令的指令队列中取指令u u 对指令进行译码并产生不同的控制信号对指令进行译码并产生不同的控制信号对指令进行译码并产生不同的控制信号对指令进行译码并产生不同的控制信号u u1616位通用寄存器位通用寄存器位通用寄存器位通用寄存器AX,BX,CX,DX,BP,SP,SI,DIAX,BX,CX,DX,BP,SP,SI,DIu u1616位状态标志寄存器位状态标志寄存器位状态标志寄存器位状态标志寄存器FlagFlag第31页,共179页,编辑于2022年,星期二执行单元执行单元执行单元执行单元EUEU由下列部件组成:由下列部件组成:由下列部件组成:由下列部件组成:1.1616位算术逻辑单元位算术逻辑单元位算术逻辑单元位算术逻辑单元(ALU)(ALU):进行算术和逻辑运算。2.1616位标志寄存器位标志寄存器位标志寄存器位标志寄存器FLAGSFLAGS:存放CPU运算的状态和控制标志。3.数据暂数据暂数据暂数据暂存寄存器:存寄存器:存寄存器:存寄存器:暂存参加运算的数据4.通用寄存器:通用寄存器:包括4个16位数据寄存器AX、BX、CX、DX和4个16位指针与变址寄存器SP、BP与SI、DI。5.EU控制电路:控制电路:它是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作。第32页,共179页,编辑于2022年,星期二uu指令队列指令队列为先进先出结构为先进先出结构为先进先出结构为先进先出结构指令队列中只要有一条指令,指令队列中只要有一条指令,指令队列中只要有一条指令,指令队列中只要有一条指令,EUEU就开始执行就开始执行就开始执行就开始执行指令队列只要未满,指令队列只要未满,指令队列只要未满,指令队列只要未满,BIUBIU自动执行取指操作,直到填自动执行取指操作,直到填自动执行取指操作,直到填自动执行取指操作,直到填满为止满为止满为止满为止当执行转移指令时,当执行转移指令时,当执行转移指令时,当执行转移指令时,EUEU要求要求要求要求BIUBIU从新的地址中重从新的地址中重从新的地址中重从新的地址中重新取指。队列中原有指令被清除。新取得的第一条新取指。队列中原有指令被清除。新取得的第一条新取指。队列中原有指令被清除。新取得的第一条新取指。队列中原有指令被清除。新取得的第一条指令直接送指令直接送指令直接送指令直接送EUEU执行,随后取得的指令填入队列执行,随后取得的指令填入队列执行,随后取得的指令填入队列执行,随后取得的指令填入队列接口部件接口部件BIU第33页,共179页,编辑于2022年,星期二uu指令队列的特点指令队列的特点经总线从代码段取指令,送经总线从代码段取指令,送EU译码译码接口部件接口部件BIU取指取指取指取指 总线忙总线忙总线忙总线忙执指执指执指执指 总线闲总线闲总线闲总线闲取指、执指取指、执指取指、执指取指、执指 重叠重叠重叠重叠取指、执指取指、执指取指、执指取指、执指 总线忙总线忙总线忙总线忙uZ80CPU的取指、执指(没有指令队列)的取指、执指(没有指令队列)顺序执行指令顺序执行指令u8086CPU的取指、执指(有指令队列)的取指、执指(有指令队列)并行执行指令并行执行指令第34页,共179页,编辑于2022年,星期二接口部件接口部件BIU第35页,共179页,编辑于2022年,星期二uu指令队列的优点指令队列的优点指令队列的优点指令队列的优点uu 在一条指令的执行过程中可以取出下一条(或多条)指令在一条指令的执行过程中可以取出下一条(或多条)指令在一条指令的执行过程中可以取出下一条(或多条)指令在一条指令的执行过程中可以取出下一条(或多条)指令uu在一条指令执行完成后,就可以立即执行下一条指令在一条指令执行完成后,就可以立即执行下一条指令在一条指令执行完成后,就可以立即执行下一条指令在一条指令执行完成后,就可以立即执行下一条指令uu 减少减少减少减少CPUCPU为取指令而等待的时间为取指令而等待的时间为取指令而等待的时间为取指令而等待的时间uu 提高提高提高提高CPUCPU的利用率和整个运行速度的利用率和整个运行速度的利用率和整个运行速度的利用率和整个运行速度接口部件接口部件BIU第36页,共179页,编辑于2022年,星期二uu16位指令指针寄存器位指令指针寄存器IP接口部件接口部件BIU指令指针寄存器指令指针寄存器指令指针寄存器指令指针寄存器IP=16bitIP=16bit注:注:注:注:IPIP指向存储器单元的指向存储器单元的指向存储器单元的指向存储器单元的 偏移地址偏移地址偏移地址偏移地址第37页,共179页,编辑于2022年,星期二uu16位段寄存器位段寄存器CS、DS、ES、SS接口部件接口部件BIUu8086CPU8086CPU的的的的AB=20bitAB=20bit,REG=16bitREG=16bit,怎样用怎样用怎样用怎样用1616位寄存器表示位寄存器表示位寄存器表示位寄存器表示2020位存储器实际地址。位存储器实际地址。位存储器实际地址。位存储器实际地址。u 将将将将8086CPU8086CPU能访问的能访问的能访问的能访问的1M1M存储器空间分为多段,存储器空间分为多段,存储器空间分为多段,存储器空间分为多段,每段长为每段长为每段长为每段长为64K64K个存储单元(段内偏移地址为个存储单元(段内偏移地址为个存储单元(段内偏移地址为个存储单元(段内偏移地址为1616位)。位)。位)。位)。uuCSCS、DSDS、ESES、SSSS为存放段地址的寄存器,为存放段地址的寄存器,为存放段地址的寄存器,为存放段地址的寄存器,不同段的段地址放入所对应的段寄存器。不同段的段地址放入所对应的段寄存器。不同段的段地址放入所对应的段寄存器。不同段的段地址放入所对应的段寄存器。第38页,共179页,编辑于2022年,星期二uu20位地址产生器位地址产生器接口部件接口部件BIUuu 输入输入 u 输出输出 u 公式公式段寄存器中的段寄存器中的段寄存器中的段寄存器中的1616位位位位段首地址(逻辑地址)段首地址(逻辑地址)段首地址(逻辑地址)段首地址(逻辑地址)内总线中来的内总线中来的内总线中来的内总线中来的1616位位位位段内偏移地址(逻辑地址)段内偏移地址(逻辑地址)段内偏移地址(逻辑地址)段内偏移地址(逻辑地址)2020位位位位 实际地址(物理地址)实际地址(物理地址)实际地址(物理地址)实际地址(物理地址)实际地址实际地址实际地址实际地址=段首地址段首地址段首地址段首地址*16+*16+段内偏移地址段内偏移地址段内偏移地址段内偏移地址 实际地址实际地址实际地址实际地址=段首地址段首地址段首地址段首地址4+4+段内偏移地址段内偏移地址段内偏移地址段内偏移地址第39页,共179页,编辑于2022年,星期二 物物理理地地址址:CPU与存储器进行数据交换时在地址总线上提供的20位地址信息称为物理地址。物理地址的形成过程如图3.3所示。当由IP提供或由EU根据指令所提供寻址方式计算出寻址单元的16位段内偏移地址后,把该偏移地址和段寄存器内容左移四位后(相当于乘以10H)得到的段基址(段内第一个存储单元的物理地址)同时送到BIU中的地址加法器,形成一个20位的物理地址,从而实现对存储单元的访问。由逻辑地址求物理地址的公式为:物理地址物理地址物理地址物理地址=段地址段地址段地址段地址 10H+10H+10H+10H+段内偏移地址段内偏移地址段内偏移地址段内偏移地址 如假设当前(CS)=20A8H,(IP)=2008H,那么,下一条从内存中读取的指令所在存储单元的物理地址为:20A8H10H+2008H=22A88H。第40页,共179页,编辑于2022年,星期二实际地址生成过程实际地址生成过程CS左移左移4位位20位+地址加法器地址加法器CS16位物理地址物理地址20位IPIP第41页,共179页,编辑于2022年,星期二例例:段地址为段地址为2F86H,偏移地址为,偏移地址为2A36H问问:该存储器单元的实际地址该存储器单元的实际地址PA为多少为多少PA=段地址段地址4+偏移地址偏移地址=2F86H4+2A36H=2F860H+2A36H=32296H第42页,共179页,编辑于2022年,星期二u总线控制电路总线控制电路将将8086CPU的内部总线与外部总线相连的控制电的内部总线与外部总线相连的控制电路。路。第43页,共179页,编辑于2022年,星期二8086CPU的寄存器结构的寄存器结构uu寄存器分类特点寄存器分类特点u通用数据寄存器通用数据寄存器u通用地址寄存器通用地址寄存器u段寄存器段寄存器u指令指针寄存器指令指针寄存器u标志寄存器标志寄存器注:均为注:均为注:均为注:均为1616位寄存器,共位寄存器,共位寄存器,共位寄存器,共1414个个个个AXAX、BXBX、CXCX、DXDXSPSP、BPBP、SISI、DIDICSCS、DSDS、ESES、SSSSIPIPF F第44页,共179页,编辑于2022年,星期二8086CPU的寄存器结构的寄存器结构uu通用数据寄存器通用数据寄存器u16位通用数据寄存器(位通用数据寄存器(4个)个)u8位通用数据寄存器(位通用数据寄存器(8个)个)AXBXCXDXAXBXCXDXAHBHCHDHAHBHCHDHALBLCLDLALBLCLDL注:为了满足兼容性,可注:为了满足兼容性,可注:为了满足兼容性,可注:为了满足兼容性,可88位、位、位、位、1616位使用位使用位使用位使用第45页,共179页,编辑于2022年,星期二8086CPU的寄存器结构的寄存器结构uu通用数据寄存器的习惯用法通用数据寄存器的习惯用法u uAXAX累加器,常用于存放算术逻辑运累加器,常用于存放算术逻辑运累加器,常用于存放算术逻辑运累加器,常用于存放算术逻辑运算中的操作数,并与外设接口传递信息。算中的操作数,并与外设接口传递信息。算中的操作数,并与外设接口传递信息。算中的操作数,并与外设接口传递信息。uBXBX基址寄存器,常用来存放访问基址寄存器,常用来存放访问基址寄存器,常用来存放访问基址寄存器,常用来存放访问内存时的偏移地址。内存时的偏移地址。内存时的偏移地址。内存时的偏移地址。u uCXCX计数器,在循环和串操作指令中计数器,在循环和串操作指令中计数器,在循环和串操作指令中计数器,在循环和串操作指令中用作计数器。用作计数器。用作计数器。用作计数器。u uDXDX数据寄存器,在间接寻址的输入数据寄存器,在间接寻址的输入数据寄存器,在间接寻址的输入数据寄存器,在间接寻址的输入/输出指令中作地址寄存器用。输出指令中作地址寄存器用。输出指令中作地址寄存器用。输出指令中作地址寄存器用。第46页,共179页,编辑于2022年,星期二8086CPU的寄存器结构的寄存器结构uu通用地址寄存器通用地址寄存器SP、BP、SI、DIu仅有仅有16位使用,称地址指针寄存器位使用,称地址指针寄存器u用于存放存储器段内偏移地址用于存放存储器段内偏移地址u常用功能常用功能BP堆栈基址指针堆栈基址指针SP堆栈栈顶指针堆栈栈顶指针SI源变址指针源变址指针DI目的变址指针目的变址指针第47页,共179页,编辑于2022年,星期二8086CPU的寄存器结构的寄存器结构uu通用寄存器使用特点通用寄存器使用特点uu 一般情况下,通用寄存器可以用于任何指令的任一般情况下,通用寄存器可以用于任何指令的任一般情况下,通用寄存器可以用于任何指令的任一般情况下,通用寄存器可以用于任何指令的任意操作,并且可以相互替换。意操作,并且可以相互替换。意操作,并且可以相互替换。意操作,并且可以相互替换。uu1616位的通用数据寄存器可分解为位的通用数据寄存器可分解为位的通用数据寄存器可分解为位的通用数据寄存器可分解为22个个个个88位的使用,位的使用,位的使用,位的使用,它是同一个物理介质。它是同一个物理介质。它是同一个物理介质。它是同一个物理介质。uu 通用地址寄存器不能分解为通用地址寄存器不能分解为通用地址寄存器不能分解为通用地址寄存器不能分解为88位使用。位使用。位使用。位使用。uu 有些操作规定只能使用某个特定的寄存器,有些操作规定只能使用某个特定的寄存器,有些操作规定只能使用某个特定的寄存器,有些操作规定只能使用某个特定的寄存器,即寄存器的特殊用法。即寄存器的特殊用法。即寄存器的特殊用法。即寄存器的特殊用法。第48页,共179页,编辑于2022年,星期二AXAXBXBXCXCXDXDX8086CPU的通用寄存器总结的通用寄存器总结目的变址指针(目的变址指针(DestinationIndex)DIDI源变址指针(源变址指针(SourceIndex)SISI基址指针(基址指针(BasePointer)BPBP堆栈指针(堆栈指针(StackPointer)SPSP数据寄存器(数据寄存器(Data)DLDHDX计数寄存器(计数寄存器(Count)CLCHCX基址寄存器(基址寄存器(Base)BLBHBX累加器(累加器(Accumulator)ALAHAX数据寄存器数据寄存器数据寄存器数据寄存器 可可可可分为两个分为两个分为两个分为两个8 8位,位,位,位,主要用于数据主要用于数据主要用于数据主要用于数据操作操作操作操作地址指针地址指针地址指针地址指针主要用于主要用于主要用于主要用于地址操作地址操作地址操作地址操作16位位88第49页,共179页,编辑于2022年,星期二8086CPU的寄存器结构的寄存器结构uu段寄存器段寄存器CS、DS、ES、SSu仅有仅有16位使用位使用u用于存放存储器段首地址用于存放存储器段首地址u常用功能常用功能CSCS存放代码段段首地址存放代码段段首地址存放代码段段首地址存放代码段段首地址SSSS存放堆栈段段首地址存放堆栈段段首地址存放堆栈段段首地址存放堆栈段段首地址DSDS存放数据段段首地址存放数据段段首地址存放数据段段首地址存放数据段段首地址ESES存放附加段段首地址存放附加段段首地址存放附加段段首地址存放附加段段首地址第50页,共179页,编辑于2022年,星期二8086CPU的寄存器结构的寄存器结构uu指令指针寄存器指令指针寄存器IPu仅有仅有16位使用位使用u用于存放代码段内的偏移地址用于存放代码段内的偏移地址u与与CS寄存器构成指令的寄存器构成指令的20位实际地址位实际地址u指令中指令中IP不能赋值不能赋值第51页,共179页,编辑于2022年,星期二8086CPU的寄存器结构的寄存器结构uu标志寄存器标志寄存器Fu16位寄存器中仅定义了位寄存器中仅定义了9位位u可位操作控制位值可位操作控制位值u6个状态位个状态位CF、OF、ZF、SF、AF、PFu3个控制位个控制位TF、DF、IFOFDFIFTFSFZFAFPFCFD15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0第52页,共179页,编辑于2022年,星期二标志寄存器标志寄存器Fuu状态标志状态标志执行某些指令后,结果的状态(非结果本身)执行某些指令后,结果的状态(非结果本身)执行某些指令后,结果的状态(非结果本身)执行某些指令后,结果的状态(非结果本身)标志存入标志存入标志存入标志存入FF,根据状态控制后续指令的执行。,根据状态控制后续指令的执行。,根据状态控制后续指令的执行。,根据状态控制后续指令的执行。u uCFCF无符号数运算进位无符号数运算进位无符号数运算进位无符号数运算进位/借位标志(借位标志(借位标志(借位标志(CarryFlagCarryFlag)u uOFOF有符号数运算溢出标志(有符号数运算溢出标志(有符号数运算溢出标志(有符号数运算溢出标志(OverflowFlagOverflowFlag)u uAFAF辅助进位辅助进位辅助进位辅助进位/借位标志(借位标志(借位标志(借位标志(AuxiliaryCarryFlagAuxiliaryCarryFlag)u uZFZF运算结果为运算结果为运算结果为运算结果为0 0时的标志(时的标志(时的标志(时的标志(ZeroFlagZeroFlag)u uSFSF运算结果为负数时的标志(运算结果为负数时的标志(运算结果为负数时的标志(运算