微机系统中的微处理器.ppt_第1页
微机系统中的微处理器.ppt_第2页
微机系统中的微处理器.ppt_第3页
微机系统中的微处理器.ppt_第4页
微机系统中的微处理器.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 微机系统中的微处理器,3.2 8086的内部结构 3.3 8086的寄存器结构 3.4 8086的存储器组织 3.5 8086的I/O组织 3.6 8086的数据寻址方式 3.7 高档CPU的寄存器和存储器,微处理器的是组成计算机系统的核心部件,其基本功能为:,(1)支持功能完善的指令系统,进行各种算术、逻辑运算,通过程序完成复杂的科学计算。 (2)支持各种结构的程序的执行,如程序的分支、循环、嵌套、子程序的调用和返回、中端服务程序。 (3)控制与存储器、外设等相连接,组成完整的微机系统。,3.1 微处理器的一般结构,3.1.1 微处理器的内部结构,一、微处理器的功能,3.1.1 微处

2、理器的内部结构,指令的执行过程,3.1.1 微处理器的内部结构,外部结构输入/输出引脚微处理器级总线 微处理器通过微处理器级总线与外部部件和设备相联系。,1总线的功能 和存储器之间交换信息 和I/O设备之间交换信息 为了系统工作而接收和输出必要的信号,如输入时钟脉冲、复位信号、电源和接地等,2总线的分类 数据总线(Data Bus) 地址总线(Address Bus) 控制总线(Control Bus),一总线功能与分类,3.1.2 微处理器的外部结构,存储器通常由几个模块组成,每个模块有几千个单元,每个存储单元有唯一的存储器地址与其对应。,二存储器和I/O地址空间,I/O接口保证数据、控制与

3、状态信息在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端口独立进行编址。,存储器: 高位选择模块,低位选择模块内的存

4、储单元。 I/O设备:高位选择I/O接口,低位选择I/O端口。,3.1.2 微处理器的外部结构,8086由两个独立的逻辑单元组成,即总线接口单元(BIU)和执行单元(EU)。,BIU的任务:执行总线操作。 (1)访问存储器,包括取指令、取操作数、存结果等。 (2)与I/O之间的信息传输。 EU的任务:执行指令,进行全部算术和逻辑运算、完成偏移地址的计算,向BIU提供指令执行结果的数据和访问存储器需要的偏移地址,并对通用寄存器和标志寄存器进行管理。,3.2 8086的功能结构,3.2 8086的内部结构,(3)EU取得指令,译码并执行指令。若指令需要取操作数或存操作结果,需要访问存储器或I/O,

5、EU向BIU发出访问总线请求。当BIU接到EU的总线请求,若正忙,则须等BIU执行完当前的总线周期,才能响应EU的请求;若BIU空闲,则立即执行EU申请总线的请求。,(1)BIU的指令队列有两个或两个以上字节为空时,BIU自动启动总线周期,取指填充指令队列。直至队列满,进入空闲状态。,(2)EU每执行完一条指令,从指令队列的队首取指。特殊情况:系统初始化后,指令队列为空,EU等待BIU从内存取指,填充指令队列。,(4)EU执行转移、调用和返回指令时,若下一条指令不在指令队列中,则队列被自动清除,BIU根据本条指令执行情况重新取指填充指令队列。,流水线技术原则,取指令取操作数(如果需要)执行指令

6、写入存储器。,8086首次引入了流水线技术,执行指令和总线访问可以同时进行,提高了总线利用率。,8086/8088以前的CPU,指令流水线,3.3 8086的寄存器结构,3.3.1 通用寄存器组,一、数据寄存器,(1)16位数据寄存器 AX累加器,使用频度最高,用于算术、逻辑运算 以及与外设传送信息等; BX基址寄存器,常用做存放存储器基地址; CX计数器,循环和串操作等指令中的隐含计数器; DX数据寄存器,常用来存放双字长数据的高16位, 或存放外设端口地址。,(2)8位数据寄存器: AH BH CH DH AL BL CL DL,3.3.1 通用寄存器组,二、地址指针和变址寄存器,变址寄存

7、器常用于存储器寻址时提供地址: SI源变址寄存器 DI目的变址寄存器,指针寄存器用于寻址内存堆栈内的数据: SP堆栈指针,指示栈顶的偏移地址。 SP不能再用于其他目的,具有专用目的。 BP基址指针,表示数据在堆栈段中的基地址。 SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址。,8086有4个16位段寄存器: CS Code Segment,执行程序所在段的段地址 SS Stack Segment,堆栈段的段地址 DS Data Segment,数据段的段地址 ES Extra Segment,附加段的段地址,3.3.2 段寄存器组,3.3.3 控制寄存器组,指令指针寄存器I

8、P(Instruction Pointer): 指示下一条要执行指令的偏移地址,计算机通过CS 和 IP来控制指令序列的执行流程。 IP寄存器是一个专用寄存器。,标志寄存器(FLAG): 状态标志记录程序运行结果的状态信息,许多指令的执行都将相应地设置它。 CF ZF SF PF OF AF 控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式。 DF IF TF,3.3.3 控制寄存器组,标志寄存器(FLAG),进位标志CF:当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。 例如: 3AH + 7CHB6H, 没有进位:CF

9、= 0 AAH + 7CH(1)26H, 有进位: CF = 1,溢出标志OF:若算术运算的结果有溢出,则OF=1;否则 OF0 例如: 3AH + 7CHB6H, 产生溢出:OF = 1 AAH + 7CH(1)26H, 没有溢出:OF = 0,标志寄存器(FLAG),标志寄存器(FLAG),问题: 1. 什么是溢出? 2. 溢出和进位有什么区别? 3. 处理器怎么处理,程序员如何运用? 4. 如何判断是否溢出?,处理器内部以补码表示有符号数。 8个二进制位能够表达的整数范围是:+127 -128 如果运算结果超出了这个范围,就是产生了溢出。 有溢出,说明有符号数的运算结果不正确。,1. 什

10、么是溢出?,标志寄存器(FLAG),例如: 3AH + 7CHB6H,即58 + 124182,已经超出-128 127范围,产生溢出,所以OF = 1;另一方面,补码B6H表达真值是-74,显然运算结果也不正确。,溢出标志OF和进位标志CF是两个意义不同的标志。 进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确; 溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。,2. 溢出和进位,标志寄存器(FLAG),例1:3AH + 7CHB6H 无符号数运算:58124182,范围内,无进位 有符号数运算: 58124182 ,范围外,有溢出,2. 溢出和进位,标志寄存器(FL

11、AG),例2:AAH + 7CH(1)26H 无符号数运算:170124294,范围外,有进位 有符号数运算:8612438 ,范围内,无溢出,处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF。,3. 如何应用溢出和进位标志,标志寄存器(FLAG),应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。,判断运算结果是否溢出有一个简单的规则: 只有当两个相同符号数相加(异号数相减可转化为同号数相加),而运算结果的符号与原数据符号相反时,产生

12、溢出;因为,此时的运算结果显然不正确。 其他情况下,则不会产生溢出。,4. 溢出的判断,标志寄存器(FLAG),3.4 8086的存储器组织,3.4.1 存储器地址空间和数据存储格式,8086的存储器是以字节(Byte,8位)为单位组织的。 20条地址总线,可寻址的存储器地址空间为220B(1MB)。,每个存储单元都有一个编号 存储器地址 每个存储单元存放一个字节的内容,二进制位1位二进制数:0或1。 字节8个二进制位,D7D0。 字16位,2个字节,D15D0。 双字32位,4个字节,D31D0。,信息的表达单位:,3.4 8086的存储器组织,3.4.1 存储器地址空间和数据存储格式,两个

13、连续的字节,为一个字:低对低,高对高(小端方式)。 字的地址指低字节的地址。,字的地址为偶地址,称字的存储是对准的,访问时只需一个总线周期。 字的地址为奇地址,称字的存储是未对准的,访问时要两个总线周期。,字: 0002H=1234H 0003H=5612H,字节: 0002H=34H 0003H=12H,3.4 8086的存储器组织,3.4.2 存储器分段管理和物理地址的形成,对应每个存储单元都有一个唯一的20位编号,即物理地址。 00000HFFFFFH,8086CPU采用地址分段方法管理存储器,即用逻辑地址表示一个存储器单元地址: 段基地址 : 段内偏移地址,段地址左移4位偏移地址20位

14、物理地址,例如: 逻辑地址“1460H:100H” = 物理地址14700H 显然,一个物理地址可以有多个逻辑地址。,3.4 8086的存储器组织,3.4.2 存储器分段管理和物理地址的形成,偏移地址:说明主存单元距离段起始位置的偏移量。 每段不超过64KB,偏移地址也可用16位数据表示。,段地址:说明逻辑段在主存中的起始位置。 8086规定段地址必须是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址。,3.4 8086的存储器组织,3.4.2 存储器分段管理和物理地址的形成,8086对逻辑段的要求是: 段地址低4位均为0,每段最大不

15、超过64KB。 每个段不要求必须是64KB,段与段可以重叠。,1MB空间最多能分成多少个段?,每隔64K个存储单元开始一个段,所以1MB最少有: 22021616 个段,每隔16个存储单元就可以开始一个段,所以1MB最多有: 2201621664K 个段,1MB空间最少能分成多少个段?,3.4 8086的存储器组织,3.4.3 信息的分段存储与段寄存器的关系,程序区:存储程序的指令代码,由CS划定并控制。,数据区:存储原始数据、中间结果和最后结果,由DS和ES控制。,堆栈区:存储需要压入堆栈的数据和状态信息,由SS控制。,注意: (1)访问存储器时,段地址由默认段寄存器提供,或由“指定”的段寄

16、存器提供; (2)DS、ES和SS的内容用传送指令置入,但不能向CS中置入数; (3)偏移地址的获得有约定。,程序员如何分配各个逻辑段?,3.3 8086的存储器组织,3.4.3 信息的分段存储与段寄存器的关系,程序的指令序列必须安排在代码段; 程序使用的堆栈一定在堆栈段; 程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段。,数据的存放比较灵活,实际上可以存放在任何一种逻辑段中。,各个逻辑段独立示意图,各个逻辑段重叠示意图,3.5 8086的I/O组织,I/O接口与CPU之间的通信是利用称为I/O端口的寄存器来完成的。微型机系统要为I/O芯片的每个端口分配一

17、个地址,各个端口有唯一的I/O地址与之对应,是单独编址的。,8086CPU地址总线的低16位用来对8位I/O端口寻址,I/O地址空间为65536,即可访问65536个8位的I/O端口,寻址范围是64KB。任何两个编号相邻的8位端口可以组成一个16位端口。,3.5 8086的数据寻址方式,指令由操作码和操作数两部分组成:,操作码:说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。,操作数:指令执行的参与者,即各种操作的对象。 有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有3个甚至4个操作数。,3.6 8086的数据寻址方式,指令中的操作

18、数,可以是一个具体的数值,可以是存放数据的寄存器,或指明数据在主存位置的存储器地址。,指令系统设计了多种操作数的来源,寻找操作数的过程就是操作数的寻址方式。,8086的数据寻址方式有: 立即数寻址方式 寄存器寻址方式 存储器寻址方式 隐含寻址-以后学习,3.6 8086的数据寻址方式,MOV dest , src;destsrc ;MOV指令的功能是将源操作数src ;传送至目的操作数dest,MOV AL, 05H ;AL05H MOV BX, AX ;BXAX MOV AX, SI ;AXDS:SI MOV AX, BP+06H ;AXSS:BP+06H MOV AX, BX+SI ;AX

19、DS:BX+SI,指令的助记符格式: 操作码 操作数1, 操作数2;注释,立即数寻址,指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中)。,可以是8位数i8(00HFFH), 可以是16位数i16(0000HFFFFH)。,立即数寻址方式常用来给寄存器赋值。 MOV AL, 05H;AL05H MOV AX, 0102H;AX0102H,小地址端,大地址端,寄存器寻址,MOV AX, 1234H ;AX1234H MOV BX, AX ;BXAX,操作数存放在CPU的内部寄存器REG中,8位寄存器R8: AH/AL/BH/BL/CH/CL

20、/DH/DL 16位寄存器R16: AX/BX/CX/DX/SI/DI/BP/SP 4个段寄存器SEG:CS/DS/SS/ES,存储器寻址,指令中给出操作数的主存地址信息(偏移地址,称之为有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中。,8086设计了多种存储器寻址方式: 直接寻址方式 寄存器间接寻址方式 寄存器相对寻址方式 基址变址寻址方式 相对基址变址寻址方式,存储器寻址,1. 直接寻址方式,有效地址在指令中直接给出,默认的段地址在DS段寄存器,可使用段超越前缀改变。,MOV AX, 2000H ;AXDS:2000H ;指令代码:A10020 MOV AX, ES:200

21、0H ;AXES:2000H ;指令代码:26A10020,存储器寻址,2. 寄存器间接寻址方式,有效地址存放在基址寄存器BX, 或变址寄存器SI、DI,或基址指针BP中。,MOV AX, BX ;AXDS:BX MOV AX, ES:DI ;AXES:SI,段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变。,存储器寻址,3. 寄存器相对寻址方式,有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。 有效地址BX/BP/SI/DI8/16位位移量,MOV AX, DI+06H;AXDS:DI+06H MOV AX, B

22、P+06H;AXSS:BP+06H,段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变。,存储器寻址,4. 基址变址寻址方式,有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成: 有效地址BX/BPSI/DI,MOV AX, BX+SI ;AXDS:BX+SI MOV AX, BP+DI ;AXSS:BP+DI MOV AX, DS:BP+DI;AXDS:BP+DI,段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变。,存储器寻址,5. 基址变址且相对寻址方式,有效地址是基址寄存器(BX/BP)

23、、变址寄存器(SI/DI)与一个8位或16位位移量之和: 有效地址BX/BPSI/DI8/16位位移量,MOV AX, BX+SI+06H;AXDS:BX+SI+06H MOV AX, BP+SI+06H;AXSS:BP+SI+06H,段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变。,存储器寻址,注意:(1)位移量可用符号表示 (2)同一寻址方式有多种表达方式,在寄存器相对寻址或相对基址变址寻址方式中,位移量可用符号表示: MOV AX, SI+COUNT;COUNT是已定义的变量或常量 MOV AX, BX+SI+WNUM;WNUM也是变量或常量,同一寻

24、址方式有时可以写成不同的形式: MOV AX, BXSI ;MOV AX, BX+SI MOV AX, COUNTSI ;MOV AX, SI+COUNT MOV AX, WNUMBXSI ;MOV AX, WNUMBX+SI ;MOV AX, 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只能访问地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论