微机原理_8088(8086)工作原理

上传人:j****9 文档编号:57353677 上传时间:2018-10-21 格式:PPT 页数:23 大小:493.50KB
返回 下载 相关 举报
微机原理_8088(8086)工作原理_第1页
第1页 / 共23页
微机原理_8088(8086)工作原理_第2页
第2页 / 共23页
微机原理_8088(8086)工作原理_第3页
第3页 / 共23页
微机原理_8088(8086)工作原理_第4页
第4页 / 共23页
微机原理_8088(8086)工作原理_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《微机原理_8088(8086)工作原理》由会员分享,可在线阅读,更多相关《微机原理_8088(8086)工作原理(23页珍藏版)》请在金锄头文库上搜索。

1、第二章 8088/8086工作原理 理解以8088/8086为CPU的微机的基本工作原理,Bus Interface Unit,Control Unit,Register Stack,Arithmetic Logic Unit,Byte,Byte,Byte,Byte,Byte,Addressing Unit,Address Bus(20bit),Data Bus (8/16Bit),Write Enable,Read Enable,8088/8086微机系统核心工作原理,8088/8086,Memory,微机系统相关模块功能小结,算术逻辑单元ALU:用于实现二进制算术与逻辑运算的集成数字电路,

2、典型的运算有加、减、乘、除、与、或、非、比较等。运算时一般为模运算,要求操作数为8位、16位或32位。 控制单元CU:由于计算机系统是由多个功能部件连接而成,就需要有一个控制部件控制各功能模块协调工作,提供同步时钟,可靠完成各个模块数据的交换。 寄存器堆RS:CPU内部的数据存放空间,用于存放各种运算需要的参数,及产生的结果。一般每个寄存器可放一个8位、16位或32位二进制数。 总线BUS:简单的说就是用于传递多位数字信息的多根导线,但之所以称之为总线是因为总线往往一排总线要连接多个不同的终端,实现多终端信息通过单一总线传递,从而减少计算机系统中的连线,但为了协调通信的冲突而叫入了协议,使系统

3、更复杂。总线根据功能一般分为三类:数据总线、地址总线、控制总线。 总线接口单元BIU:实现CPU与其外部的内存与外设的数据交换,它是CPU与外部进行信息交流的唯一通道。 内存Memory:是计算机系统中用于存放CPU运行所需软件与数据的存储单元,内存单元一般由ROM和RAM半导体存储芯片构成。,Page 27,EU,BIU,总线接口部件 (Bus Interface Unit) 与微处理器外部总线连接,负责与存储器、I/O接口进行数据交换,存取指令、操作数等。,指令的执行过程 一条指令的执行可以分为: 取指令、 指令译码、 指令执行三步。 (在指令执行时CPU还要根据需要在存储器中存取操作数。

4、),用来存放计算的中间结果,CPU从寄存器中存取数据比从存储器中存取数据要快得多。大量使用寄存器能提高计算机运行速度,但也提高了成本,执行部件(Execution Unit) 负责指令的译码、执行等。,预取指令缓冲队列(ISQ) 在8088/8086微处理器中采用了预取指令技术,提前把指令从存储器中取到微处理器中,执行指令时直接在微处理器内部就可以获得指令,从而提高了微处理器的性能。 Intel 8086(8088)中设置有6(4)个字节的ISQ,当指令队列中出现2(1)个字节空时,微处理器中总线接口部件自动完成指令填充工作。当遇到分支、跳转、子程序调用等情况时,ISQ自动清空,从新的程序位置

5、取出指令重新填充 ISQ。,BIU和EU分开,同步运行,分工协作,执行部分不用等待取指时间,只管执行运算,而内存取指和取数由BIU去完成。 优点: 1. 提高了CPU的利用率,提高了整体的运行速度; 2. 降低了CPU对存储器的速度要求。 缺点: 1. 难以准确计算程序运行的时间。,非流水线工作微处理器的指令执行过程,取指1,取指2,取指3,取指4,取指5,取指6,EU,总线,执行1,执行2,执行3,执行4,执行5,执行6,忙,忙,忙,忙,忙,忙,BIU,8088/8086CPU的指令执行过程,Intel 8088和8086内部数据总线均为16位,内部指令一次运算既能处理16位数据,也能处理8

6、位数据。 Intel 8088外部数据总线为8位,Intel8086外部数据总线为16位。(这也是8088和8086的唯一区别) 内部有14个16位寄存器(其中通用寄存器8个)用于存放运算的中间结果和对内存寻址。 提供20位地址线,可寻址1MByte内存(220 Byte) 时钟频率为4.77MHz, 40引脚双列直插封装,单一正5V供电。,8088/8086的相关参数,8088/8086 DIP40封装,8088/8086寄存器结构,数据寄存器,指针寄存器,段寄存器,控制寄存器,数据寄存器,AX(Accumulator Register):16位主累加器,其中的低8位又称为AL,高8位又称为

7、AH;即AX等同于(AH,AL); BX(Base Register):16位存数单元和基址寄存器,其中的低8位又称为BL,高8位又称为BH;即BX等同于(BH,BL); CX(Count Register):16位存数单元和计数器,其中的低8位又称为CL,高8位又称为CH;即CX等同于(CH,CL); DX(Data Register):16位存数单元和IO寻址寄存器,其中的低8位又称为DL,高8位又称为DH;即DX等同于(DH,DL)。,堆栈指针SP(Stack Pointer):用于实现内存中的堆栈存储方式(FILO),指示栈顶的偏移地址; 基址指针BP(Base Pointer):充当

8、寻址堆栈区中变量数据的一个指针(即某一变量在内存中所在单元的偏移地址); 源变址寄存器SI(Source Index):在串操作时与ES联用,用于指明所取数据在内存中的位置; 目的变址寄存器DI(Destination Index):在串操作时与DS联用,用于指明所存数据到内存中的位置;,指针寄存器,控制寄存器,指令指针IP(Instruction Pointer):计算机之所以能自动地一条一条地取出并执行指令,是因为CPU中有一个跟踪指令地址的电路,其核心就是指令指针IP,它用于指明当前应该调用内存中哪个地址位置的指令到CPU中来运行,从而实现计算机自动运行程序员事先安排好的软件。状态标志寄

9、存器F(Status Flags):计算机中所有的功能都是靠电路运算来实现的,反应各种运算的状态是所有CPU必要的功能,一般CPU使用状态标志寄存器来反应各种运算的状态与结果。,标志寄存器(Flags),状态标志:表示处理器当前运行的状态。 CF进位标志,运算结果有进(借)位,CF=1 AF辅助进位标志,低4位向前有进(借)位,AF=1 ZF零标志,结果为0, ZF=1 SF符号标志,最高位的值 OF溢出标志,双高位判别法确定 PF偶标志,运算结果低8位中1的个数为偶数个,PF=1逻辑上的真用1表示,假用0表示 控制标志:控制处理器的某一特定功能。 IF可屏蔽中断允许标志,IF=1表示允许 D

10、F方向标志,DF=0 地址增量变化;DF=1地址减量变化 TF陷阱标志(单步执行标志),标志寄存器功能举例,0101 0100 0011 1001+ 0100 0101 0110 10101001 1001 1010 0011最高位=1,SF=1 低8位中偶数为4个,PF=1 运算结果不为0,ZF=0 低4位向前有进位,AF=1 最高位向前没有进位,CF=0次高位向前有进位,Cs=0,Cp=1,OF=Cs Cp=1,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,O D I T S Z A P C,数据与指令的存储与访问,地址是数据存放的门牌号码是标明数据所在位置的

11、唯一代号,每个地址空间可以存放8位二进制数,内存示意图,所有CPU可以访问的数据与指令都以二进制数的形式存放在内存中,8088计算机主存储器是按字节进行组织的,两个相邻的字节被称为一个“字” 。存放的信息若是以字节Byte(8位)为单位的,将在存储器中按顺序排列存放,每个地址单元存放一个字节,即每个字节占用一个地址;若存放的数据为一个字Word(16位)时,则每一个字占用两个地址相连的存储单元,其中低字节(低8位)存放在低地址中,高字节(高8位)存放在高地址中,并以低地址作为该字的地址。8088系统只能提供20根地址线来区分内存的不同存储单元,因此8088系统可以连接的内存最多只能包含220(

12、1M)字节的存储单元。,8088的存储器管理,Intel 8088具有20位的地址总线。用20根地址总线来管理1MB的存储器空间。 由于微处理器内部的寄存器和ALU都是16位的,为了实现20位的地址管理,8088在对存储器管理的设计中,采用了分段管理的技术。 把1MB的存储器按照使用需要分成4段。每段的大小为64K(216)Byte,物理地址的结算方法如右图所示。 段地址存放在4个段寄存器中,4个段寄存器分别为: CS(Code Segment): 代码段 DS(Data Segment): 数据段 SS(Stack Segment): 堆栈段 ES(Extra Segment): 附加段,各

13、段之间可以相互独立,相互重叠,甚至相互重合,存放当前正在运行的程序,存放当前正在运行的程序所用的数据,特殊的存储区,辅助的数据区,存放当前正在运行的程序,存放当前正在运行的程序所用的数据,特殊的存储区,辅助的数据区,存放当前正在运行的程序,存放当前正在运行的程序所用的数据,特殊的存储区,辅助的数据区,概念小节,段地址:段寄存器的16位值,它们决定了各段在内存中的位置。由于只有4个段寄存器,故只有4个段地址。 偏移地址:每个段有64K个存储单元,要区分这64K个单元就要使用16位段内偏移地址。段内偏移地址可以由多种方式给出,有时又称为有效地址EA(Effective Address)。 物理地址

14、:在内存中取数时实际提供地址必须是20位的,该20位地址是由段地址和偏移地址运算而得,称为物理地址。 逻辑地址:当物理地址写作段地址:偏移地址的形式时,又称为逻辑地址,逻辑地址比物理地址包含的信息更全面,它表明了寻址时相应的段地址和偏移地址。,存储器寻址方式,偏移地址,15 0,+,段基地址,存储器,所选存储单元,所选段 最大 64KB,由存储器的寻址方式可知,段的大小固定为64KByte,段的位置由相应的段寄存器的值决定。例:设 CS2300H,则代码段的物理地址范围为:23000H32FFFH,64K代码,64K数据,64K附加数据,64K堆栈,各段独立的分配方式举例,CS DS SS E

15、S,段寄存器,存储器,01500H114FFH1CD00H2CCFFH42000H51FFFHB0000HBFFFFH,内存分段访问的优点,可用16位寄存器的值运算生成20位物理地址值,用于访问1MByte空间的存储器。 内存分段使用,各施其职,每个段的访问方式又各不相同,有利于管理。如:代码段存放程序,为有跳转的顺序访问;数据段是随机访问;堆栈段是FILO访问;附加段既可以随机访问又可以顺序访问。 若要防止各段干涉,可将各段定义为相互独立。 若要节省存储器,可尽量将各段重叠,甚至重合。 不用修改程序可将程序重定位。因为一般编程时,程序中只使用偏移地址来寻址,不修改偏移地址,只改变段地址,就能实现程序的重载。,堆栈的概念,堆栈区是在随机存储的内存中开辟一片数据存储区实现FILO(或LIFO)的数据存放。 这种数据存取方式类似于货物的堆放与取出,故称作堆栈。也类似于弹匣中子弹的存取方式。 堆栈的FILO存取方式是靠堆栈指针SP的自动变化来实现的。,堆栈的实现(将一个字1234H存入堆栈),SS160000H,SS160FFFFH,堆栈段,SP初值指向栈底,SP自动减2,指向栈顶,12H,34H,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号