微机系统中的微处理器.ppt

上传人:tian****1990 文档编号:11533252 上传时间:2020-04-27 格式:PPT 页数:51 大小:947.50KB
返回 下载 相关 举报
微机系统中的微处理器.ppt_第1页
第1页 / 共51页
微机系统中的微处理器.ppt_第2页
第2页 / 共51页
微机系统中的微处理器.ppt_第3页
第3页 / 共51页
点击查看更多>>
资源描述
第三章微机系统中的微处理器,3.28086的内部结构3.38086的寄存器结构3.48086的存储器组织3.58086的I/O组织3.68086的数据寻址方式3.7高档CPU的寄存器和存储器,微处理器的是组成计算机系统的核心部件,其基本功能为:,(1)支持功能完善的指令系统,进行各种算术、逻辑运算,通过程序完成复杂的科学计算。(2)支持各种结构的程序的执行,如程序的分支、循环、嵌套、子程序的调用和返回、中端服务程序。(3)控制与存储器、外设等相连接,组成完整的微机系统。,3.1微处理器的一般结构,3.1.1微处理器的内部结构,一、微处理器的功能,3.1.1微处理器的内部结构,指令的执行过程,3.1.1微处理器的内部结构,外部结构输入/输出引脚微处理器级总线微处理器通过微处理器级总线与外部部件和设备相联系。,1总线的功能和存储器之间交换信息和I/O设备之间交换信息为了系统工作而接收和输出必要的信号,如输入时钟脉冲、复位信号、电源和接地等,2总线的分类数据总线(DataBus)地址总线(AddressBus)控制总线(ControlBus),一总线功能与分类,3.1.2微处理器的外部结构,存储器通常由几个模块组成,每个模块有几千个单元,每个存储单元有唯一的存储器地址与其对应。,二存储器和I/O地址空间,I/O接口保证数据、控制与状态信息在CPU和I/O设备之间正常传送的电路。I/O和CPU之间的通信利用称为I/O端口的寄存器来完成。对应一个I/O设备的I/O接口,可能包括几个I/O端口,每个I/O端口都有一个唯一的I/O地址与其对应。,3.1.2微处理器的外部结构,存储单元和I/O端口以字节为单位存放数据,每个字节对应一个标识地址。地址总线的条数即为二进制地址码的位数,它可能表示的不同地址的集合称为地址空间。地址码的位数决定了地址空间的大小:2n,二存储器和I/O地址空间,单地址空间:对存储器和I/O端口统一进行编址。双地址空间:对存储器和I/O端口独立进行编址。,存储器:高位选择模块,低位选择模块内的存储单元。I/O设备:高位选择I/O接口,低位选择I/O端口。,3.1.2微处理器的外部结构,8086由两个独立的逻辑单元组成,即总线接口单元(BIU)和执行单元(EU)。,BIU的任务:执行总线操作。(1)访问存储器,包括取指令、取操作数、存结果等。(2)与I/O之间的信息传输。EU的任务:执行指令,进行全部算术和逻辑运算、完成偏移地址的计算,向BIU提供指令执行结果的数据和访问存储器需要的偏移地址,并对通用寄存器和标志寄存器进行管理。,3.28086的功能结构,3.28086的内部结构,(3)EU取得指令,译码并执行指令。若指令需要取操作数或存操作结果,需要访问存储器或I/O,EU向BIU发出访问总线请求。当BIU接到EU的总线请求,若正忙,则须等BIU执行完当前的总线周期,才能响应EU的请求;若BIU空闲,则立即执行EU申请总线的请求。,(1)BIU的指令队列有两个或两个以上字节为空时,BIU自动启动总线周期,取指填充指令队列。直至队列满,进入空闲状态。,(2)EU每执行完一条指令,从指令队列的队首取指。特殊情况:系统初始化后,指令队列为空,EU等待BIU从内存取指,填充指令队列。,(4)EU执行转移、调用和返回指令时,若下一条指令不在指令队列中,则队列被自动清除,BIU根据本条指令执行情况重新取指填充指令队列。,流水线技术原则,取指令取操作数(如果需要)执行指令写入存储器。,8086首次引入了流水线技术,执行指令和总线访问可以同时进行,提高了总线利用率。,8086/8088以前的CPU,指令流水线,3.38086的寄存器结构,3.3.1通用寄存器组,一、数据寄存器,(1)16位数据寄存器AX累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;BX基址寄存器,常用做存放存储器基地址;CX计数器,循环和串操作等指令中的隐含计数器;DX数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。,(2)8位数据寄存器:AHBHCHDHALBLCLDL,3.3.1通用寄存器组,二、地址指针和变址寄存器,变址寄存器常用于存储器寻址时提供地址:SI源变址寄存器DI目的变址寄存器,指针寄存器用于寻址内存堆栈内的数据:SP堆栈指针,指示栈顶的偏移地址。SP不能再用于其他目的,具有专用目的。BP基址指针,表示数据在堆栈段中的基地址。SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址。,8086有4个16位段寄存器:CSCodeSegment,执行程序所在段的段地址SSStackSegment,堆栈段的段地址DSDataSegment,数据段的段地址ESExtraSegment,附加段的段地址,3.3.2段寄存器组,3.3.3控制寄存器组,指令指针寄存器IP(InstructionPointer):指示下一条要执行指令的偏移地址,计算机通过CS和IP来控制指令序列的执行流程。IP寄存器是一个专用寄存器。,标志寄存器(FLAG):状态标志记录程序运行结果的状态信息,许多指令的执行都将相应地设置它。CFZFSFPFOFAF控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式。DFIFTF,3.3.3控制寄存器组,标志寄存器(FLAG),进位标志CF:当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0。例如:3AH+7CHB6H,没有进位:CF=0AAH+7CH(1)26H,有进位:CF=1,溢出标志OF:若算术运算的结果有溢出,则OF=1;否则OF0例如:3AH+7CHB6H,产生溢出:OF=1AAH+7CH(1)26H,没有溢出:OF=0,标志寄存器(FLAG),标志寄存器(FLAG),问题:1.什么是溢出?2.溢出和进位有什么区别?3.处理器怎么处理,程序员如何运用?4.如何判断是否溢出?,处理器内部以补码表示有符号数。8个二进制位能够表达的整数范围是:+127-128如果运算结果超出了这个范围,就是产生了溢出。有溢出,说明有符号数的运算结果不正确。,1.什么是溢出?,标志寄存器(FLAG),例如:3AH+7CHB6H,即58+124182,已经超出-128127范围,产生溢出,所以OF=1;另一方面,补码B6H表达真值是-74,显然运算结果也不正确。,溢出标志OF和进位标志CF是两个意义不同的标志。进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。,2.溢出和进位,标志寄存器(FLAG),例1:3AH+7CHB6H无符号数运算:58124182,范围内,无进位有符号数运算:58124182,范围外,有溢出,2.溢出和进位,标志寄存器(FLAG),例2:AAH+7CH(1)26H无符号数运算:170124294,范围外,有进位有符号数运算:8612438,范围内,无溢出,处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF。,3.如何应用溢出和进位标志,标志寄存器(FLAG),应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。,判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加(异号数相减可转化为同号数相加),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确。其他情况下,则不会产生溢出。,4.溢出的判断,标志寄存器(FLAG),3.48086的存储器组织,3.4.1存储器地址空间和数据存储格式,8086的存储器是以字节(Byte,8位)为单位组织的。20条地址总线,可寻址的存储器地址空间为220B(1MB)。,每个存储单元都有一个编号存储器地址每个存储单元存放一个字节的内容,二进制位1位二进制数:0或1。字节8个二进制位,D7D0。字16位,2个字节,D15D0。双字32位,4个字节,D31D0。,信息的表达单位:,3.48086的存储器组织,3.4.1存储器地址空间和数据存储格式,两个连续的字节,为一个字:低对低,高对高(小端方式)。字的地址指低字节的地址。,字的地址为偶地址,称字的存储是对准的,访问时只需一个总线周期。字的地址为奇地址,称字的存储是未对准的,访问时要两个总线周期。,字:0002H=1234H0003H=5612H,字节:0002H=34H0003H=12H,3.48086的存储器组织,3.4.2存储器分段管理和物理地址的形成,对应每个存储单元都有一个唯一的20位编号,即物理地址。00000HFFFFFH,8086CPU采用地址分段方法管理存储器,即用逻辑地址表示一个存储器单元地址:段基地址:段内偏移地址,段地址左移4位偏移地址20位物理地址,例如:逻辑地址“1460H:100H”=物理地址14700H显然,一个物理地址可以有多个逻辑地址。,3.48086的存储器组织,3.4.2存储器分段管理和物理地址的形成,偏移地址:说明主存单元距离段起始位置的偏移量。每段不超过64KB,偏移地址也可用16位数据表示。,段地址:说明逻辑段在主存中的起始位置。8086规定段地址必须是模16地址:xxxx0H省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址。,3.48086的存储器组织,3.4.2存储器分段管理和物理地址的形成,8086对逻辑段的要求是:段地址低4位均为0,每段最大不超过64KB。每个段不要求必须是64KB,段与段可以重叠。,1MB空间最多能分成多少个段?,每隔64K个存储单元开始一个段,所以1MB最少有:22021616个段,每隔16个存储单元就可以开始一个段,所以1MB最多有:2201621664K个段,1MB空间最少能分成多少个段?,3.48086的存储器组织,3.4.3信息的分段存储与段寄存器的关系,程序区:存储程序的指令代码,由CS划定并控制。,数据区:存储原始数据、中间结果和最后结果,由DS和ES控制。,堆栈区:存储需要压入堆栈的数据和状态信息,由SS控制。,注意:(1)访问存储器时,段地址由默认段寄存器提供,或由“指定”的段寄存器提供;(2)DS、ES和SS的内容用传送指令置入,但不能向CS中置入数;(3)偏移地址的获得有约定。,程序员如何分配各个逻辑段?,3.38086的存储器组织,3.4.3信息的分段存储与段寄存器的关系,程序的指令序列必须安排在代码段;程序使用的堆栈一定在堆栈段;程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段。,数据的存放比较灵活,实际上可以存放在任何一种逻辑段中。,各个逻辑段独立示意图,各个逻辑段重叠示意图,3.58086的I/O组织,I/O接口与CPU之间的通信是利用称为I/O端口的寄存器来完成的。微型机系统要为I/O芯片的每个端口分配一个地址,各个端口有唯一的I/O地址与之对应,是单独编址的。,8086CPU地址总线的低16位用来对8位I/O端口寻址,I/O地址空间为65536,即可访问65536个8位的I/O端口,寻址范围是64KB。任何两个编号相邻的8位端口可以组成一个16位端口。,3.58086的数据寻址方式,指令由操作码和操作数两部分组成:,操作码:说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。,操作数:指令执行的参与者,即各种操作的对象。有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有3个甚至4个操作数。,3.68086的数据寻址方式,指令中的操作数,可以是一个具体的数值,可以是存放数据的寄存器,或指明数据在主存位置的存储器地址。,指令系统设计了多种操作数的来源,寻找操作数的过程就是操作数的寻址方式。,8086的数据寻址方式有:立即数寻址方式寄存器寻址方式存储器寻址方式隐含寻址-以后学习,3.68086的数据寻址方式,MOVdest,src;destsrc;MOV指令的功能是将源操作数src;传送至目的操作数dest,MOVAL,05H;AL05HMOVBX,AX;BXAXMOVAX,SI;AXDS:SIMOVAX,BP+06H;AXSS:BP+06HMOVAX,BX+SI;AXDS:BX+SI,指令的助记符格式:操作码操作数1,操作数2;注释,立即数寻址,指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中)。,可以是8位数i8(00HFFH),可以是16位数i16(0000HFFFFH)。,立即数寻址方式常用来给寄存器赋值。MOVAL,05H;AL05HMOVAX,0102H;AX0102H,小地址端,大地址端,寄存器寻址,MOVAX,1234H;AX1234HMOVBX,AX;BXAX,操作数存放在CPU的内部寄存器REG中,8位寄存器R8:AH/AL/BH/BL/CH/CL/DH/DL16位寄存器R16:AX/BX/CX/DX/SI/DI/BP/SP4个段寄存器SEG:CS/DS/SS/ES,存储器寻址,指令中给出操作数的主存地址信息(偏移地址,称之为有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中。,8086设计了多种存储器寻址方式:直接寻址方式寄存器间接寻址方式寄存器相对寻址方式基址变址寻址方式相对基址变址寻址方式,存储器寻址,1.直接寻址方式,有效地址在指令中直接给出,默认的段地址在DS段寄存器,可使用段超越前缀改变。,MOVAX,2000H;AXDS:2000H;指令代码:A10020MOVAX,ES:2000H;AXES:2000H;指令代码:26A10020,存储器寻址,2.寄存器间接寻址方式,有效地址存放在基址寄存器BX,或变址寄存器SI、DI,或基址指针BP中。,MOVAX,BX;AXDS:BXMOVAX,ES:DI;AXES:SI,段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变。,存储器寻址,3.寄存器相对寻址方式,有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。有效地址BX/BP/SI/DI8/16位位移量,MOVAX,DI+06H;AXDS:DI+06HMOVAX,BP+06H;AXSS:BP+06H,段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变。,存储器寻址,4.基址变址寻址方式,有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:有效地址BX/BPSI/DI,MOVAX,BX+SI;AXDS:BX+SIMOVAX,BP+DI;AXSS:BP+DIMOVAX,DS:BP+DI;AXDS:BP+DI,段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变。,存储器寻址,5.基址变址且相对寻址方式,有效地址是基址寄存器(BX/BP)、变址寄存器(SI/DI)与一个8位或16位位移量之和:有效地址BX/BPSI/DI8/16位位移量,MOVAX,BX+SI+06H;AXDS:BX+SI+06HMOVAX,BP+SI+06H;AXSS:BP+SI+06H,段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变。,存储器寻址,注意:(1)位移量可用符号表示(2)同一寻址方式有多种表达方式,在寄存器相对寻址或相对基址变址寻址方式中,位移量可用符号表示:MOVAX,SI+COUNT;COUNT是已定义的变量或常量MOVAX,BX+SI+WNUM;WNUM也是变量或常量,同一寻址方式有时可以写成不同的形式:MOVAX,BXSI;MOVAX,BX+SIMOVAX,COUNTSI;MOVAX,SI+COUNTMOVAX,WNUMBXSI;MOVAX,WNUMBX+SI;MOVAX,BX+SI+WNUM,3.7高档CPU的寄存器和存储器,3.7.1高档CPU的寄存器结构,与8086的区别:,(1)8个通用寄存器的长度扩展为32位:EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP。,(2)EIP存放下一条要执行指令的偏移地址。其低16位称为IP,用于偏移地址为16位的实模式情况。,(3)标志寄存器扩展为32位EFLAGS,增加了高档CPU特有的状态标志和控制标志。,(4)增加了16位的段寄存器FS和GS。,3.7高档CPU的寄存器和存储器,3.7.2高档CPU的存储器访问机制,奔腾CPU可访问存储器空间为4GB。采用虚拟存储技术,可大大扩展存储空间。,实模式即8086模式,CPU只能访问地址低端的1MB存储器空间,这部分存储区成为实模式存储器、常规内存或DOS存储器系统。,DOS工作于实模式,WINDOWS工作于保护模式。,一、实模式与保护模式,保护模式,CPU可访问低端1MB存储区和高于1MB以上的存储区。,3.7高档CPU的寄存器和存储器,3.7.2高档CPU的存储器访问机制,1.基本概念,二、保护模式下的存储器寻址机制,(2)描述符表:存储描述符的特殊用途的段。有三种:1个GDT、多个LDT和1个IDT。每个表最多存放213个描述符,每个描述符8字节,每个表占用64KB。每个描述符分配一个13位的描述符索引号,索引号乘以8得到这个描述符在描述符表中的起始地址。,(1)段描述符:对段进行说明的、固定格式的、连续8个字节信息。包括32位的段地址(段基地址),20位的段界限和12位的属性位(标志位和控制位)。,3.7高档CPU的寄存器和存储器,3.7.2高档CPU的存储器访问机制,1.基本概念,二、保护模式下的存储器寻址机制,(3)段寄存器、选择符和描述符寄存器每个16位段寄存器(共6个)对应一个64位的描述符寄存器。段寄存器由程序置入段选择符,16位的段选择符中的13位是描述符索引号。,一旦程序向某个段寄存器置入段选择符,将自动地把描述符表中的64位描述符传入对应的描述符寄存器。,存有描述附表的特殊用途的段,它的描述符存于描述符表寄存器(GDTR、LDTR和IDTR)。,3.7高档CPU的寄存器和存储器,3.7.2高档CPU的存储器访问机制,(1)保护模式下访问存储器的地址仍有段基地址(32位)和偏移地址(20位)两部分组成。,二、保护模式下的存储器寻址机制,(2)段基地址的获取:首先,经段寄存器中的选择符中的索引号,指明存储于段描述符表中的描述符,然后,将由这个描述符提供段地址。,(3)保护模式下可寻址的存储器空间可无限大,通过虚拟存储器实现。,2.寻址机制,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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