微处理器-内部结构.ppt

上传人:小飞机 文档编号:6047419 上传时间:2023-09-18 格式:PPT 页数:38 大小:542KB
返回 下载 相关 举报
微处理器-内部结构.ppt_第1页
第1页 / 共38页
微处理器-内部结构.ppt_第2页
第2页 / 共38页
微处理器-内部结构.ppt_第3页
第3页 / 共38页
微处理器-内部结构.ppt_第4页
第4页 / 共38页
微处理器-内部结构.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《微处理器-内部结构.ppt》由会员分享,可在线阅读,更多相关《微处理器-内部结构.ppt(38页珍藏版)》请在三一办公上搜索。

1、第2章 微处理器,应重点掌握和理解的知识(1)重点掌握8086/8088CPU的内部结构特征及外部应用特征(2)重点掌握内部寄存器的构成及应用特点(3)重点掌握8086/8088系统中存储器的组织特点以及物理地址的计算方法(4)掌握8086/8088系统中I/O组织特点及端口的编址方式(5)掌握8086/8088CPU的最大最小两种工作模式(6)理解8086/8088CPU工作周期的相关概念以及CPU外部操作的典型工作时序,8086/8088微处理器的编程结构 8086/8088的存储器组织 8086/8088的I/O组织 8086/8088微处理器的引脚功能和工作模式 8086/8088的典

2、型时序分析,2.1 8086/8088微处理器的编程结构,主要内容:,8086CPU的内部结构 8086CPU的寄存器结构,2.1.1 8086CPU的内部结构,8086CPU是Intel系列的16位微处理器8086CPU和8088CPU内部结构基本相同,都由两大功能部件组成:执行部件(EU)总线接口部件(BIU),2.1.1 8086CPU的内部结构,AX,BX,CX,DX,指令译码,总线控制逻辑,总线控制逻辑决定对内存或对I/O接口读或写控制,寄存器是CPU内的组成部分,寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。指令:确定运算与操作数据:运算或读写操作的对象地址:

3、标记和确定内存空间中具体的存储位置,指令队列的设置使指令的取出与执行并行进行,以提高了程序的运行速度,地址加法器的作用是根据段寄存器存放的段基地址与EU送出的16位偏移地址计算得到20位的实际地址,8088CPU外部数据总线为8位、指令队列为4字节,取指令、指令译码、产生并传送操作控制信号,总线接口部件BIU的组成及功能,20位物理地址加法器6字节指令队列缓冲器4个16位段寄存器(CS、DS、SS、ES)16位指令指针寄存器(IP)总线控制逻辑,总线控制逻辑,BIU是CPU与外部存储器及I/O部件的接口,负责完成CPU与存储器和I/O系统的数据交换(传输),算术逻辑单元(ALU)(运算器)8个

4、通用寄存器运算寄存器(暂存器)1个标志寄存器(FR)EU控制电路,执行部件EU的组成及功能,取指令,指令译码执行指令,完成运算,指令译码,指令队列缓冲器,是EU与BIU之间的“桥梁”!实现CPU的并行流水线处理操作组成8086 的指令队列为6个字节8088 的指令队列为4个字节指令队列缓冲器的指令存放状态顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令执行转移指令:立即清除指令队列中的内容,从新的地址取入指令,并立即送往执行单元,然后再从新单元开始重新填满队列,8086CPU对指令的执行过程,EU与BIU之间采用并行流水线方式BIU从内存取指令,送到指令队列缓冲器EU从BIU中的指令队

5、列缓冲器中不断地取指令并执行指令,省去了访问内存取指令的时间,加快了程序运行速度EU需要内存操作数或存结果时:向BIU发请求,并提供有数据的效地址(16位)BIU计算出内存物理地址(20位),启动一个总线读/写周期,从指定的内存单元或I/O端口读/写数据,2.1.2 8086CPU的寄存器结构,包括14个16位的寄存器 4个数据寄存器 2个地址指针寄存器 2个变址寄存器 2个控制寄存器 4个段寄存器,D15,D0,D8 D7,数据寄存器,指针寄存器,变址寄存器,控制寄存器,段寄存器,1.数据寄存器,含4个16位寄存器:AX、BX、CX、DX常用来存放参与运算的操作数、中间结果和地址既可作为16

6、位寄存器使用,也可分别作为2个独立的8位寄存器使用例如:若BX=1234H,则BH=12H,BL=34H;反之,若BH=56H,BL=78H,则BX=5678H AX(Accumulator)(AH、AL)累加寄存器常用于数据运算或与外设交换数据 BX(Base)(BH、BL)基址寄存器在间接寻址中用于存放内存的基地址 CX(Count)(CH、CL)计数寄存器在循环、移位等操作中用于计数 DX(Data)(DH、DL)数据寄存器常用于数据的传送或配合AX进行双字节运算,2.指针寄存器,有两个:SP、BPSP:堆栈指针寄存器,存放当前堆栈段中栈顶的偏移地址BP:基址指针寄存器,存放位于堆栈段中

7、的某个存储单元的偏移地址(基地址)SP和BP通常与SS搭配使用,3.变址寄存器,有两个:SI(源变址寄存器)、DI(目标变址寄存器)通常存放操作数在数据段内某个单元的偏移地址(也可作为一般数据寄存器使用,存放操作数或运算结果)与DS配合使用特定作用:在串操作中用SI存放源串的偏移地址用DI存放目标串的偏移地址,4.段寄存器,4个16位段寄存器,用于存放各逻辑段的段基地址;不可互换使用 CS(Code Segment):代码段寄存器 用于存放当前执行程序所在段的段基地址 DS(Data Segment):数据段寄存器 用于存放当前使用数据所在段的段基地址 ES(Extra Segment):附加

8、段寄存器 用于存放当前附加数据段的段基地址 SS(Stack Segment):堆栈段寄存器 用于存放当前堆栈段的段基地址,IP寄存器 指令指针寄存器,存放下一次要取出执行的指令的偏移地址(类似程序计数器PC)执行部件EU每取走1条指令,BIU自动将IP的值修改为下一条要执行指令的地址。当执行转移指令、调用指令时,BIU将转移的目标地址装入IP。与CS结合使用构成指令物理地址用户不能直接更新它,只能由系统自动更新,5.指令指针寄存器,部分寄存器一般用途示意,代码段,段基地址CS,某指令地址IP,数据段或附加数据段,段基地址DS或ES,某数据地址DI,某数据地址SI,堆栈段,段基地址SS,堆栈顶

9、地址SP,栈内某数据地址BP,6.标志寄存器,FR(FLAGS)状态标志寄存器,16位用途:反映指令执行结果的特征或控制CPU的工作状态只用了9位6个状态标志位(也称为条件码)-自动寄存ALU运算结果的特征信息 3个控制标志-寄存CPU的工作状态信息(可由用户设置或改变),标志寄存器图示,溢出标志位OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0,方向标志DF位用来决定在“数据串操作”指令执行时的步进方向;DF=1表示由高字节向低字节方向进行称为递减方式,中断允许标志IF位用来决定CPU是否响应CPU

10、外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断请求,以及CPU内部产生的中断请求;IF=1表示开中断,状态控制标志TF位用来控制CPU是正常(TF=0)执行,还是单步(TF=1)执行,符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。对于有符号数就反映运算结果的正负号。运算结果为正数时,SF的值为0,零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,在运算过程中,如果发生低4位向高4位的进位或借位时,辅助进位标志AF的值将被置为1,奇偶标志PF用于标志运算结果的低8位中“1”的个数的奇偶性。如果“1”的个数为偶数,则P

11、F的值为1,进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,此时其值为1,标志寄存器置位问题,状态标志位的置1或置0由ALU运算的结果自动置位(但CF可用专门指令设置或改变)控制标志位需要在程序中用专门的指令设置,状态标志位设置举例(右图):以8位系统为例。,运算对标志位的影响的例,运算对标志位的影响的例,2.2 存储器及I/O端口的组织与管理,主要内容:,数据存储格式存储器的分段物理地址的形成,存储器结构,8086/8088系统中,存储器按字节(8位)编址,即一个存储单元存放一个字节的数据存储单元编号,称为地址8086/8088系统每个存储单元的地址

12、均为20位(但一般用5个十六进制数书写,如12C50H),1.字数据的存储,存储在一个存储单元中的数据称为字节数据(8位)字节数据的存储:按顺序存放其存储单元的地址,叫做该字节数据的存储地址需要存储在相邻两个存储单元中的数据称为一个“字”,叫做字数据(16位)字数据的存储:字的低字节存于低地址单元,字的高字节存于高地址单元存放该字数据低字节的存储单元的地址,叫做该字数据的存储地址,即字地址。,1.字数据的存储,存储单元地址,00A22H,00B06H,00B07H,03A03H,03A04H,问:字数据325EH的地址是?,字的规则存放与非规则存放,若一个字从偶数地址开始存放,则称为“规则存放

13、”,该字也称为“规则字”若一个字从奇数地址开始存放,则称为“非规则存放”,该字称为“非规则字”存取“规则字”与“非规则字”,其操作过程不同(即所使用的总线周期数不同):存取1个规则字用1个总线周期,非规则字用2个总线周期,字的存储举例,例2.1 图2.5中,字单元00200H和字节单元00200H存放的内容是什么?字数据5678H的存储地址是什么?说明字1234H和5678H是否为规则存放(是否为规则字)?,2.存储器的分段,为什么需要分段?(1)8086CPU有20根地址线,每个存储单元有20位的物理地址,CPU可寻址 220=1 MB个存储单元(内存空间)(2)CPU 的寄存器、ALU都是

14、16位,送出的也只能是16位的地址数据。最多能直接寻址 216=64 KB 个单元就是说:16位的寄存器和ALU不能直接存放和处理20位的地址数据,因此8086CPU对1MB的存储器引入了存储器分段以及相应段基址的概念,存储器的逻辑段,程序员在编制程序时把存储器划分成段,又称为逻辑段(形式上的段)一个程序分为:代码段、数据段、堆栈段等每个逻辑段长度64 KB(实际使用时根据需要来确定段大小)逻辑段的划分原则上不受限制,逻辑段可在整个1MB存储空间内浮动,各段之间可连续、可分开、可部分重叠、还可完全重叠,段基址与段起始地址,段起始地址:每个段第一个存储单元的物理地址规定:段起始地址必须能被16整

15、除,即其20位物理地址中的低4位为0000段基地址(简称“段基址”):段起始地址的高16位。例如:某段的段起始地址为12340H,则该段的段基址为1234H段基址被存入段寄存器(CS、DS、SS、ES),存储器段的分配和相应段寄存器的关系(示例),每段最大64KB,最小16B,0200H,0400H,0480H,CS,DS,SS,8KB代码,存储器,2KB数据,256B堆栈,02000H,04000H,04800H,段寄存器,代码段段起始地址,偏移地址、逻辑地址,在段内,某个存储单元距离该段起始地址的字节单元个数,称为该存储单元的偏移地址(段内偏移量、段内地址)或有效地址EA偏移地址是16位的

16、,可以放在寄存器如SI等中存储单元可以由段基址和段内偏移地址来定位,形式为“段基址:偏移地址”逻辑地址给出逻辑地址就可确定存储单元的位置若段的划分不同,同一个单元的逻辑地址会不同!每个存储单元在存储器中的位置可以用逻辑地址表示,也可以用物理地址表示。,段起始地址、段基址、偏移地址、逻辑地址(小结),60002H,12H,60000H,0 0 0 0,段基址(16位),段起始地址(20位),偏移地址=0002H,00H,低4位一定为0,60002H单元的逻辑地址可写为:6000H:0002H,3.物理地址的形成,CPU访问存储器时,必须先确定所要访问的存储单元的物理地址。由逻辑地址(即段基地址和

17、偏移地址)通过计算得到,注意:段基址10H=段起始地址(20位),例如:某指令在代码段中的段基址CS=3000H,段内偏移地址IP=5F62H,则该指令所在存储单元的物理地址为:CS10H+IP=3000H10H+5F62H=30000H+5F62H=35F62H,逻辑地址到物理地址的形成,BIU中的地址加法器,实现逻辑地址到物理地址的变换,段寄存器,有效地址EA,偏移地址,段基址左移4位,地址加法器,20位物理地址,19,0,15,0,19,0,段寄存器的选择,取指令时:由CS和IP的内容构造物理地址入栈或出栈操作:由SS和SP构造物理地址读/写内存数据时:通常由DS(或ES)和指令中给出的

18、有效地址EA构造物理地址,例,在内存中某数据区内,连续存放27个字数据。首字的存储地址为 BA00H:1BA0H。计算该数据区的首末存储单元的物理地址首地址为:BA00H*10H+1BA0H=BBBA0H末地址为:BBBA0H+35H(27*2-1)=BBBD5H最后一个字数据的存储地址=BBBD5H-1H=BBBD4H,4.8086/8088的I/O组织,CPU与外部设备通过I/O接口芯片连接每个I/O接口芯片上都有一定数目的端口(即寄存器)暂存信息系统为每个端口分配一个地址,称端口号8086CPU用低16位地址(A15A0)访问端口,可以访问216=64K个8位端口两个相邻8位端口可以合并为一个16位端口使用,可有32K个16位端口,接口与端口问题示意,端口 30B0H,端口 30B1H,端口 50A0H,端口 50A1H,端口 41C0H,端口 41C1H,CPU,打印机,显示器,外设,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号