掌握CPU的内部结构和特点了解CPU外部引线及.ppt
《掌握CPU的内部结构和特点了解CPU外部引线及.ppt》由会员分享,可在线阅读,更多相关《掌握CPU的内部结构和特点了解CPU外部引线及.ppt(87页珍藏版)》请在三一文库上搜索。
1、掌握8088CPU的内部结构和特点; 了解8088CPU外部引线及功能; 掌握各内部寄存器的功能; 掌握8088的存储器组织; 了解8088的工作时序。,本章主要内容,第2章 8088/8086微处理器,2.1 8088/86 概述,8088、8086基本类似 16位CPU、地址总线(AB)宽度20位 差别: 指令队列:8088为4字节,8086为6字节 数据总线:8088有8根,8086有16根 8088为准16位CPU:与当时已有的8位外设接口芯片兼容 本课程主要介绍8088(IBM PC采用),流水线结构,串行结构,2.2 8088的内部结构,执行单元( Execute Unit ) 总
2、线接口单元 ( Bus Interface Unit ),8088的内部结构,1 2 3 4,内部暂存器,IP,ES,SS,DS,CS,输入/输出控制电路,外部总线,执行部分控制电路,ALU,标志寄存器,AH AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,通用 寄存器,地址加法器,指令队列,执行部件(EU),总线接口部件(BIU),16位,20位,16位,8位,总线接口单元BIU,功能: 从内存中取指令送入指令队列 负责与内存或I/O接口之间的数据传送,8088的内部结构,1 2 3 4,内部暂存器,IP,ES,SS,DS,CS,输入/输出控制电路,外部总线,执行部分控制电
3、路,ALU,标志寄存器,AH AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,通用 寄存器,地址加法器,指令队列,执行部件 (EU),总线接口部件 (BIU),16位,20位,16位,8位,BIU 功能:负责与 M、I/O 端口传送数据。 从内存取指令送到指令队列; CPU执行指令时,要配合执行部件从指定的内存单元或者端口中取数据,将数据传送给EU; 把EU的操作结果存储到指定的M或I/O口。,BIU 组成: 4个段寄存器 1个指令指针寄存器(IP) 20位地址加法器() 4字节指令队列 BIU部分控制电路, 指令队列 8086 的为6个字节, 8088 的为4个字节。 BI
4、U 具有预取指令的功能,是一种先进先出(FIFO)的数据结构。不论是8086还是8088都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中. 指令执行顺序 顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。 执行转移指令: BIU 清除指令队列中的内容,从新的地址取入指令,立即送往执行单元,然后再从新单元开始重新填满队列。,三点说明,执行单元EU,功能: 执行指令 从指令队列中取指令代码 译码 在ALU中完成数据的运算 运算结果 的特征保存在标志寄存器FLAGS中。,1 2 3 4,内部暂存器,IP,ES,SS,DS,CS,输入/输出控制电路,外部总线,执行部分控
5、制电路,ALU,标志寄存器,AH AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,通用 寄存器,地址加法器,指令队列,执行部件 (EU),总线接口部件 (BIU),16位,20位,16位,8位,8088的内部结构,功能:负责指令执行。 组成: 4个通用寄存器 4个专用寄存器 1个标志寄存器 算术逻辑单元(16 位) 执行部件控制系统: 接收从BIU指令队列中取来的指令代码,译码和向 EU 内各有关部分发出时序命令信号,协调执行指令规定的操作。,DS,ES,SS,CS,IP,数据暂存器,PSW标志 寄存器,执行部件控制电路,指令译码器,AX BX CX DX,AH,BH,CH,
6、DH,SI,DI,BP,SP,AL,BL,CL,DL,寄存器组,指 令 队 列,总线 接口控制电路,运 算 器,地址加法器,、 指令1 指令2 指令3 指令4 、 数据1 数据2 数据3 、,地址总线AB,数据总线DB,控制总线CB,地 址 译 码 器,CPU 总线 内存,工作原理: 取指令, 执行指令,并行工作方式:流水线,取指令2,取操作数,BIU,存结果1,取指令3,取操作数,取指令4,执行指令1,执行 2,执行3,EU,总线,忙碌,忙碌,忙碌,忙碌,忙碌,忙碌,指令预取队列的存在使EU和BIU可同时工作 一个简单的2级流水线 新型CPU将一条指令划分成更多的阶段,以便可以同时执行更多的
7、指令,空闲,8088/86 CPU的特点,采用并行流水线工作方式 支持多处理器系统 片内无浮点运算部件,浮点运算由数学协处理器8087支持(也可用软件模拟) 注:80486DX以后的CPU均将数学协处理器作为标准部件集成到CPU内部,对内存空间实行分段管理,物理地址,. . 60000H 60001H 60002H 60003H 60004H . . .,12H,F0H,1BH,08H,存储器的操作完全基于物理地址。 问题: 8088的内部总线和内部寄存器均为16位,如何生成20位地址? 解决:存储器分段,2.3 存储器组织,1.存储器分段,高地址,低地址,段地址,段地址,段地址,段地址,最大
8、64KB,段i-1,段i,段i+1,最小16B,16位二进制数可表示216=65536=64K个地址 范围:0000H FFFFH,2.物理地址的形成,段地址:只取段起始地址高16位值。 偏移地址:段内某内存单元物理地址相对段起始地址的偏移值。,物理地址=段地址16+偏移地址 物理地址=段地址10H+偏移地址,用BIU中的地址加法器来实现 8088 可同时访问4个段,4个段寄存器指示了每个段的基地址,16位段地址,16位段内偏移,20位物理地址,+,16位,20位,0000,段寄存器:专门存放段地址,代码段寄存器:CS 数据段寄存器:DS 堆栈段寄存器:SS 附加段寄存器:ES,各个逻辑段重叠
9、的实例,各个逻辑段独立的实例,指令的地址固定由CS和IP决定:,例:开机或RESET后,( CS ) = FFFFH,( IP ) = 0。 故8088执行的第一条指令所在内存的物理地址为:,PA = ( CS ) 10H + ( IP ) = FFFF H 10H + 0 = FFFF0H,3. 逻辑地址与物理地址,逻辑地址的组成 段地址:偏移地址 逻辑地址的来源,例,已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,DS段有一操作数,其偏移地址为0204H, 1)画出各段在内存中的分布; 2)指出各段首地址; 3)该操作数的物理地址=?,解: 操作数的物理地址为:
10、 250AH10H + 0204H = 252A4H,1. 8088CPU中,若(DS)6100H,则当前数据段的起始地址是什么?末地址是什么?,练习,段的起始地址: 61000H 段的末地址: 61000H + ( 10000H 1 ) = 61000H + 0FFFFH = 70FFFH,练习,2. 给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。,物理地址(DS)10H + EA 0C00E0H+20C0H 0C21A0H,练习,3.某程序数据段中有一个字数据1234H,若已知DS=5AA0H,它的偏移地址为245AH,试画出它在存储器
11、中的存放情况。,4. 内存单元内容的存放及表示,一个内存单元存放一个字节信息,( 01000H ) = 1EH ( 01001H ) = 2FH,当往内存写一个字数据时,写入规则是: 低字节到低地址单元 ,高字节到高地址单元 例 : 将字数据2F1EH写入从01000H开始的内存单元 ( 01000H ) = 2F1EH,同一地址既可看作字节单元地址, 又可看作字单元地址。,2.4 8088的内部寄存器,含14个16位寄存器 8个通用寄存器 4个段寄存器 1个指令指针寄存器 1个控制寄存器,2.4 8088 的 内 部 寄 存 器,编写应用程序时,涉及三类基本段: 代码段(Code Segme
12、nt):存放指令代码 程序的指令代码必须安排在代码段 数据段(Data Segment):存放数据 程序的数据默认存放在数据段 数据也可放在其他段 堆栈段(Stack Segment):堆栈区域 程序使用的堆栈一定在堆栈段,段寄存器,用于存放逻辑段的段基地址 CS:代码段寄存器 代码段用于存放指令代码 DS:数据段寄存器 ES:附加段寄存器 数据段和附加段用来存放操作数 SS:堆栈段寄存器 堆栈段用于存放返回地址, 保存寄存器内容,传递参数,指令指针IP,IP:指令指针寄存器,其内容为下一条 要执行的指令的偏移地址 它与代码段寄存器CS联用,确定下一条指令的物理地址 计算机通过CS : IP寄
13、存器来控制指令序列的执行流程 IP寄存器是一个专用寄存器,数据寄存器,8088含4个16位数据寄存器,它们又可分为8个8位寄存器,即: AX AH,AL BX BH,BL CX CH,CL DX DH,DL 对其中某8位的操作,不影响另外对应8位的数据 常用来存放参与运算的操作数或运算结果,数据寄存器特有的习惯用法,AX:累加器。多用于存放中间运算结果。使用频 度最高,用于算术、逻辑运算以及与外设传 送信息等; BX:基址寄存器。常用做存放存储器地址; CX:计数寄存器。用于在循环或串操作指令中存 放循环次数或重复次数; DX:数据寄存器。在32位乘除法运算时,存放高 16位数;在间接寻址的I
14、/O指令中存放 I/O端 口地址。,指针寄存器,指针寄存器用于寻址内存堆栈内的数据 SP:堆栈指针寄存器,其内容为栈顶的偏移地址; SP不能再用于其他目的,具有专用目的。 BP:基址指针寄存器,表示数据在堆栈段中的基 地址。 BP常用于在访问内存时存放内存单元的偏移地址。 SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址,BX与BP在应用上的区别,作为通用寄存器,二者均可用于存放数据; 作为基址寄存器,BX通常用于寻址数据段;BP则通常用于寻址堆栈段。 BX一般与DS或ES搭配使用,变址寄存器,SI:源变址寄存器 DI:目的变址寄存器 常用于指令的间接寻址或变址寻址。 串操作
15、类指令中,SI和DI具有特别的功能,标志寄存器,FLAGS:标志寄存器 状态标志:存放运算结果的特征 控制标志:控制某些特殊操作 6个状态标志位(CF,SF,AF,PF,OF,ZF) 3个控制标志位(IF,TF,DF),进位标志CF(Carry Flag),当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。 针对无符号整数,判断加减结果是否超出表达范围,3AH + 7CHB6H, CF = 0 AAH + 7CH(1)26H, CF = 1,8位:0255 16位:065535,溢出标志OF(Overflow Flag),若算术运算的结果有溢
16、出,OF1;否则 OF0 针对有符号整数,判断加减结果是否超出表达范围,3AH + 7CH0B6H, OF = 1 AAH + 7CH(1)26H, OF = 0,8位:128127 16位:3276832767,什么是溢出,处理器内部以补码表示有符号数 8位表达的整数范围是:127128 16位表达的范围是:3276732768 运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确,溢出和进位,CF表示无符号数运算结果是否超出范围,运算结果仍然正确; OF表示有符号数运算结果是否超出范围,运算结果已经不正确。,如何运用溢出和进位,处理器对两个操作数进行运算时,按照无符号数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 掌握 CPU 内部结构 特点 了解 外部 引线
链接地址:https://www.31doc.com/p-2798844.html