微处理器体系与结构

上传人:san****019 文档编号:71471785 上传时间:2019-01-20 格式:PPT 页数:54 大小:831.81KB
返回 下载 相关 举报
微处理器体系与结构_第1页
第1页 / 共54页
微处理器体系与结构_第2页
第2页 / 共54页
微处理器体系与结构_第3页
第3页 / 共54页
微处理器体系与结构_第4页
第4页 / 共54页
微处理器体系与结构_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《微处理器体系与结构》由会员分享,可在线阅读,更多相关《微处理器体系与结构(54页珍藏版)》请在金锄头文库上搜索。

1、第二章 微处理器体系与结构,第一节 Intel微处理器的概要历史,8086/8088 初始芯片时钟频率为4.77MHz 内部数据总线和外部数据总线都是16位 地址总线为20位,可最大寻址1MB的存储空间 80386 80x86家族的第一个32位处理器 内部和外部数据总线都是32位 地址总线也是32位,可寻址高达4GB内存 具有实模式和保护模式外,还增加了一种叫虚拟86的工作方式,可以通过同时模拟多个8086处理器来提供多任务能力,第二节 Intel 8086/8088微处理器的结构,分三部分: 一、执行单元与总线接口单元 二、8086/8088的寄存器结构 三、8086/8088的存储器组织,

2、一、执行单元与总线接口单元,注:8086 CPU数据总线16位,指令队列为六个字节;8088 CPU数据总线八位,指令队列为四个字节。,(一)、总线接口单元BIU (Bus Interface Unit),功能:负责与 Memory、I/O 端口传送数据。 取指令时,从存储器指定地址取出指令送入指令队列排队。 执行指令时,根据EU命令对指定存储器单元或I/O端口存取数据。 组成 4 个段地址寄存器(CS、DS、ES、SS) 16位指令指针寄存器IP 20位的地址加法器(16d段地址+偏移地址物理地址) 6字节(8086)或4字节(8088)的指令队列 总线控制电路: 处理器与外界总线联系的转接

3、电路。括三组总线:20 位地址总线, 8 位双向数据总线,一组控制总线。,(一)、总线接口单元BIU (Bus Interface Unit)(cont.),指令队列 8086 的指令队列为6个字节, 8088 的指令队列为4个字节。 不论是8086还是8088都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中,使 BIU 具有预取指令的功能,是一种先进先出(FIFO)的数据结构。 指令执行顺序 顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。 执行转移指令:BIU 清除指令队列中的内容,从新的地址取入指 令,立即送往执行单元,然后再从新单元开始重新填满队列。,

4、(二)、执行单元EU ( Execution Unit ),功能 执行指令,进行全部算术逻辑运算、完全偏移地址的计算 向总线接口单元BIU提供指令执行结果的数据和偏移地址,并对通用寄存器和标志寄存器进行管理。 组成: 4个通用寄存器:AX、BX、CX、DX 4个专用寄存器:BP、SP、SI、DI 标志寄存器(PSW): 9个标志位,其中6个条件标志位用于存放结果状态, 算术逻辑单元: 16 位加法器,用于对寄存器和指令操作数进行算术或逻辑运算, EU 控制系统: 接受从总线接口单元的指令队列中取来的指令代码,对其译码和向 EU 内各有关部分发出时序命令信号,协调执行指令规定的操作。,(三)、流

5、水线工作方式,8086/8088取指部分与执行部分是分开的。 在一条指令的执行过程中可以取出下一条(或多条)指令,指令 在指令队列中排队; 在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。 8086/8088微处理器: BIU和EU分开,取指和执行可以重迭, 大大减少了等待取指所需的时间,提高CPU的利用率。,(三)、流水线工作方式(cont.),对于8080与8085及较早的8位微处理器: 程序执行由取指令和执行指令的循环来完成的, 每条指令执行完后CPU必须等待到下条指令取出来后才能执行。,二、8086/8088的寄存器结构

6、,二、8086/8088的寄存器结构(cont.),1、通用寄存器 通用寄存器包括: 数据寄存器、地址指针寄存器、变址寄存器 数据寄存器包括: AX 、BX 、CX 、DX 地址指针寄存器包括: SP 、 BP 变址寄存器包括: SI 、 DI 2、段寄存器 段寄存器包括: CS 、 SS 、 DS 、 ES 3、控制寄存器 控制寄存器包括:IP 、PSW,(一)、通用寄存器,(1)、数据寄存器 AX:(Accumulator)作为累加器。 它是算术运算的主要寄存器,所有I/O指令都使用这一寄存器与外部设备交换数据。 BX : Base用作基址寄存器使用。 在计算内存储器地址时,经常用来存放基

7、址。 CX : Count可以作计数寄存器使用。 在循环LOOP指令和串处理指令中用作隐含计数器。 DX : Data可以作为数据寄存器使用。 一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位; 对某些I/O操作DX可用来存放I/O的端口地址(口地址 256)。,(一)、通用寄存器(cont.),(2)、地址指针与变址寄存器 SP、BP、SI、DI 四个16位寄存器。以字为单位在运算过程中存放操作数,经常用以在段内寻址时提供偏移地址。 SP(stack pointer)堆栈指针寄存器 用来指示栈顶的偏移地址, 必须与SS段寄存器联合使用确定实际地

8、址。 BP(base pointer)基址指针寄存器 可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。 变址寄存器(SI 、 DI) SISource Index Register 源变址寄存器。 DIDestination Index 目的变址寄存器。 使用场合:常用于变址寻址。 一般与DS联用,用来确定数据段中某一存储单元的地址,SI , DI具有自动增量和自动减量功能.,(二)、段寄存器,段寄存器: 4个16位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。 CSCode Segment Register 代码段寄存器 用来识别当前代码段(程序一般放

9、在代码段)。 DSData Segment Register数据段寄存器 用来识别当前数据段寄存器。 SSStack Segment Register堆栈段寄存器, 用来识别当前堆栈段。 ESExtra Segment Register附加段寄存器, 用来识别当前附加段。,(三) 、控制寄存器,控制寄存器:IP 、 PSW IPInstruction Pointer指令指针寄存器 用来存储代码段中的偏移地址; 程序运行过程中IP始终指向下一次要取出的指令偏移地址IP要与。CS寄存器相配合才能形成真正的物理地址。 PSW(Processor States Word Program) 程序状态字寄

10、存器, 16位寄存器。 由条件码标志FLAG、控制标志构成。 只用了其中9位, 6位条件码标志 , 3位控制标志。,(三) 、控制寄存器(cont.) 条件码标志,用来记录程序中运行结果的状态信息作为后续条件转移指令的转移控制条件。 条件码包括6位:CF 、 PF 、 AF 、 ZF 、 SF 、 OF 。 OF(Overflow Flag)溢出标志(一般指补码溢出) OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。 OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为不溢出。 字节允许范围 -128+127, 字运算范围 -32768+32767 。 SF(Sign F

11、lag)符号标志 SF=1:记录运算结果的符号为负。 SF=0:记录运算结果的符号为正。 ZF(Zero Flag)零标志 ZF=1:运算结果为0。 ZF=0:运算结果不为0。,(三) 、控制寄存器(cont.) 条件码标志, CF(Carry Flag)进位标志 CF=1:记录运算时从最高有效位产生进位值。 CF=0:记录运算时从最高有效位不产生进值。 AF(Auxiliary Carry Flag)辅助进位标志 AF=1:记录运算时第3位(半个字节)产生进位值。 AF=0:记录运算时第3位(半个字节)不产生进位值。 PF(Parity Flag)奇偶标志 PF=1: 结果操作数低8位中有偶

12、数个1。 PF=0: 结果操作数低8位中有奇数个1。 用来为机器中传送信息时可能产生的代码出现情况提供检验条件。,(三) 、控制寄存器(cont.) 控制标志,对控制标志位进行设置后,对其后的操作起控制作用。 控制标志位包括3位: TF、 IF 、 DF 。跟踪(陷阱)标志TF、中断标志IF 、方向标志 DF 。 TF(Trap Flag)跟踪(陷阱)标志位 TF=1 ,每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。 TF=0, CPU正常工作,不产生陷阱。 IF(Interupt Flag)中断标志位 IF=1, 允许外部可屏蔽中

13、断。CPU可以响应可屏蔽中断请求。 IF=0, 关闭中断。CPU禁止响应可屏蔽中断请求。 IF的状态对不可屏蔽中断和内部软中断没有影响。 DF(Direction Flag)方向标志位 DF=1,每次串处理操作后使变址寄存器SI和DI减量,使串处理从高地址向低地址方向处理。 DF=0,每次串处理操作后使变址寄存器SI和DI增量, 使串处理从低地址向高地址方向处理。 DF方向标志位是在串处理指令中控制处理信息的方向用的。,例1:执行两个数的加法,分析对标志位的影响。,标志: 运算结果最高位为0 SF=0; 运算结果本身0 ZF=0 低8位中1的个数为奇数个 PF=0; 最高位没有进位 CF=0

14、第三位向第四位无进位 AF=0; 次高位向最高位没有进位 ,最高位向前没有进位 , OF=0。,例2:执行两个数的加法,分析对标志位的影响。,标志: 运算结果最高位为1, SF=1 ; 运算结果本身不为0, ZF=0 ; 最高位向前无进位, CF=0 次高位向最高位产生进位,而最高位向前没有进位, OF=1 ; 结果低8位含偶数个1, PF=1 ; 第三位向第四位有进位, AF=1 。 在绝大多数情况下,一次运算后并不影响所有标志, 程序也并不需要对所有的标志作全面的关注。 一般只是在某些操作后,对其中某个标志进行检测。,三、8086/8088的存储器组织,(一)、存储器结构 (二)、存储器的

15、分段结构和物理地址的形成 (三)、信息分段存储与段寄存器,(一)、存储器结构,存储单元的地址和内容 存储器位编号: 8088字长16位,由二个字节组成,位编号如下: 高位字节 MSB(815位) 低位字节LSB(07位) 8088内部的 ALU 能进行16 位运算。 有关地址寄存器如 SP、IP、BP、SI、DI 等都是16位的。,(一)、存储器结构(cont.),存储单元地址,按字节,存储单元的的内容:一个存储单元有效的信息。,机器字长是16位, 大部分数据以字节为单位表示, 一个字存入存储器占有相继的二个单元: 低位字节存入低地址,高位字节存入高地址。 字单元的地址采用它的低地址来表示。

16、例: 字单元 :(0004H)=1234H, 字节单元 :(0004H)=34H 同一个地址既可以看作字节单元地址, 又可看作字单元地址,需要根据使用情况确定。 字单元地址:可以是偶数也可以是奇数,,(一)、存储器结构(cont.),(一)、存储器结构(cont.),8086/ 8088系统的存储体结构,8086系统的存储体结构,8088系统的存储体结构,(一)、存储器结构(cont.),(2)、CPU和存储器或I/O端口之间传送数据 8086 8086数据总线是16位的。 8088 8088数据总线只有8位。 讨论CPU和存储器或I/O端口之间传送数据方式: 字数据读/写操作 字节读/写操作,(一)、存储器结构(cont.),(1)字数据读/写操作 (a) 操作数存放在偶地址开始两个存储单元或两个 I/O端口中: 即操作数字 低8位在偶地址单元或 在偶地址端口; 高8位在奇地址单元或在

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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