微机原理02讲解

上传人:我** 文档编号:114743523 上传时间:2019-11-12 格式:PPT 页数:28 大小:187.50KB
返回 下载 相关 举报
微机原理02讲解_第1页
第1页 / 共28页
微机原理02讲解_第2页
第2页 / 共28页
微机原理02讲解_第3页
第3页 / 共28页
微机原理02讲解_第4页
第4页 / 共28页
微机原理02讲解_第5页
第5页 / 共28页
点击查看更多>>
资源描述

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

1、第2章 微处理器内部结构,微型计算机原理及应用,2009年,第2章 微处理器内部结构,2.1 微处理器功能结构 2.1.1 微处理器基本结构 2.1.2 8086的功能结构 2.1.3 IA-32的功能结构 2.2 IA-32微处理器寄存器 2.2.1 整数寄存器 2.2.2 浮点及多媒体寄存器 2.3 微处理器存储器组织 2.3.1 IA-32工作方式 2.3.2 实方式的逻辑段 2.3.3 保护方式的段页管理,2.1.1 微处理器基本结构,算术逻辑单元ALU(Arithmetic Logic Unit) 运算器,主要是算术运算和逻辑运算 累加器(Accumulator):最常使用的寄存器

2、标志(Flag)寄存器:反映运算结果的辅助信息 可编程寄存器 通用寄存器:数量较多,具有多种用途 专用寄存器:只用于特定目的 指令处理单元 控制器,执行指令实现其功能 指令执行过程:读取指令、指令译码和执行指令,示意图,2.1.2 8086的功能结构,总线接口单元(BIU) 指令队列、指令指针(IP)、段寄存器(CS/DS/SS/ES)、地址加法器和总线控制逻辑 管理与系统总线的接口,负责对存储器和外设访问 执行单元(EU) ALU、通用寄存器、标志寄存器和控制电路 负责指令译码、数据运算和指令执行 指令预取 EU单元译码执行指令,同时BIU单元读取后续指令 最简单的指令流水线技术,示意图,2

3、.1.2 8086的功能结构,指令预取 6个字节的指令队列,“先进先出”方式工作。 指令队列空缺时,BIU自动取指弥补空缺;当程序发生转移时,BIU会废除已经取出的指令,重新取指形成新的指令队列。 指令的读取是BIU单元,指令的执行在EU单元。BIU和EU相互独立,分别完成各自操作,可并行操作。因此,EU执行时,BIU取指,指令预取。 取指是8086最频繁的操作,预取操作节省CPU的时间,提高了工作效率,最简单的指令流水线技术。,2.1.3-1 80386的功能结构,总线接口单元BIU:总线请求判优+数据地址驱动+控制信号驱动+协处理器控制等 指令预取单元IPU:16个字节的指令预取队列 指令

4、译码单元IDU:指令译码+译码指令队列 执行单元EU:ALU+8个32位通用寄存器+64位移位加法器等 分段单元SU:逻辑地址线性地址 分页单元PU:线性地址物理地址,示意图,6个功能部件可以并行工作,进行流水线处理,2.2.1-1 通用寄存器,8个32位通用寄存器 EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP 8个16位通用寄存器 AX,BX,CX,DX,SI,DI,BP,SP 8个8位通用寄存器 AH,AL,BH,BL,CH,CL,DH,DL,存取16位寄存器,高16位不受影响 存取8位寄存器,16/32位寄存器其他位不受影响,示意图,2.2.1-1 通用寄存器,8个32

5、位通用寄存器 EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP 8个16位通用寄存器 AX,BX,CX,DX,SI,DI,BP,SP 8个8位通用寄存器 AH,AL,BH,BL,CH,CL,DH,DL,通用寄存器的命名,EAX:累加器(Accumulator):算术、逻辑与外设传送信息 EBX:基址寄存器(Base):放存储器地址,数组中用 ECX:计数器(Counter):循环操作隐含计数器 msg db WELLDONE ;大-小写转换 mov ecx,length of msg mov ebx,offset msg again: mov al,ebx add al,20h

6、mov ebx,al add ebx,1 loop again EDX:数据寄存器(Data):存数据,DX端口地址 in al/ax/eax,dx ;从端口地址dx读入8位/16位/32位I/O out dx,al/ax/eax ;从8位/16位/32位I/O输出到端口地址dx,通用寄存器的命名,ESI:源变址寄存器(Source Index):字符串或数组的源操作数 EDI:目的变址寄存器(Destination Index):类ESI movsb ;字节串传送,es:edids:esi,esiesi1,ediedi1 movsw ;字串传送,es:edids:esi,esiesi2,ed

7、iedi2 movsd ;双字串传送,es:edids:esi,esiesi4,ediedi4 EBP:基址指针(Base Pointer):指向堆栈区域的数据 mov ax,bp+di ;axss:bp+di mov ds:bp+si,al ;ds:bp+sial 超越前缀,堆栈区一般在SS段中 ESP:堆栈指针(Stack Pointer):指向栈顶部的数据,在中断调用、子程序调用、中断返回、子程序返回时,都会使用到堆栈。 mov ebp,esp ;ebp默认与堆栈段配合 mov ebp,eax ;ss:ebpeax,堆栈(Stack):FILO方式存取数据的存储区域,2.2.1-2 指令

8、指针EIP,指向将要执行的指令在主存中的位置 保存指令所在位置的存储器地址的专用寄存器 在IA-32微处理器的32位环境 32位指令指针寄存器EIP cs:eip ;并不是简单的两个寄存器组合 在80x86的16位工作方式 只使用指令指针的低16位IP EIP中的高16位必须是0 cs:ip ;错位相加,2.2.1-3 逻辑段及其类型,逻辑段(Segment):安排相关代码或数据的一个主存区域,三类逻辑段。逻辑地址由段基地址和偏移地址组成,“段基地址:偏移地址” 代码段(Code Segment):存放指令代码 程序的指令代码必须安排在代码段 数据段(Data Segment):存放数据 程序

9、的数据默认存放在数据段,也可放在其他段 堆栈段(Stack Segment):堆栈区域 程序使用的堆栈一定在堆栈段,段寄存器,16位段寄存器:指示逻辑段在主存的起始位置 16位80x86微处理器具有 代码段寄存器CS:包含当前代码段的起始位置 堆栈段寄存器SS:包含当前堆栈段的起始位置 数据段寄存器DS:包含当前数据段的起始位置 附加段寄存器ES:包含当前附加段的起始位置,串操作必须用附加段作为目的操作数,也是数据段,逻辑地址和物理地址,逻辑地址(Logical Address) 在微处理器内部、程序员编程时采用的地址 某个存储单元可以有多个逻辑地址 逻辑地址段基地址偏移地址 段基地址逻辑段在

10、主存中的起始地址 偏移地址距离段基地址的位移量 物理地址(Physical Address) 地址总线上输出的地址,用于外部硬件连接 每个存储单元只有一个唯一的物理地址,逻辑地址由微处理器在输出之前转换为物理地址,逻辑段的逻辑地址,代码段 处理器利用CSEIP取得下一条要执行的指令 CS代码段的段地址 EIP指令的偏移地址 堆栈段 处理器利用SSESP操作堆栈中的数据 SS堆栈段的段地址 ESP栈顶的偏移地址 数据段 默认通过DSEA,也可通过ES/FS/GS或SS/CSEA读取数据 DS/ES/FS/GS或SS/CS数据所在逻辑段的段地址 EA数据所在逻辑段的偏移地址(有效地址),2.2.1

11、-4 标志寄存器EFLAGS,标志(Flag) 反映指令执行结果或控制指令执行形式 用一个或多个二进制位表示一种标志 0或1的不同组合表达标志的不同状态 8086支持16位标志寄存器FLAGS IA-32微处理器形成32位EFLAGS标志寄存器 基本标志 状态标志:记录程序运行结果的状态 控制标志:控制处理器执行指令的方式,示意图,进位标志CF(Carry Flag),当加减运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF1;否则CF0 针对无符号整数,判断加减结果是否超出表达范围 N个二进制位表达无符号整数的范围是:02N-1 8位:0255;16位:065535;3

12、2位:02321,8位二进制数相加:001110100111110010110110 十六进制表达:3A7CB6 转换成十进制数:58124182 没有产生进位:CF0,举例,0182255,零标志ZF(Zero Flag),运算结果为0,则ZF1,否则ZF0,8位二进制数相加:001110100111110010110110 十六进制表达:3A7CB6 转换成十进制数:58124182 结果不是0:ZF0,举例,1820,结果是0, ZF标志不是0 !,符号标志SF(Sign Flag),运算结果最高位为1,则SF1;否则SF0,8位二进制数相加:0011101001111100101101

13、10 十六进制表达:3A7CB6 转换成十进制数:58124182 最高位1:SF1,举例,10110110,最高位符号位SF,溢出标志OF(Overflow Flag),有符号数加减结果有溢出,则OF1;否则OF0 针对有符号整数,判断加减结果是否超出表达范围 N个二进制位表达有符号整数的范围是:2N12N1-1 8位:128127;16位:3276832767; 32位:2312311,8位二进制数相加:001110100111110010110110 十六进制表达:3A7CB6 转换成十进制数:58124182 超出范围,有溢出:OF1,举例,182127,进位和溢出意义不同,进位标志反

14、映无符号整数运算结果是否超出范围 有进位,加上进位或借位后运算结果仍然正确 溢出标志反映有符号整数运算结果是否超出范围 有溢出,运算结果已经不正确 处理器按照无符号整数求得结果 设置进位标志CF 设置溢出标志OF 程序员决定 操作数是无符号数,关心进位 操作数是有符号数,注意溢出,奇偶标志PF(Parity Flag),当运算结果最低字节中“1”的个数为零或偶数时,PF1;否则PF0,8位二进制数相加:001110100111110010110110 十六进制表达:3A7CB6 转换成十进制数:58124182 “1”的个数为5个:PF0,举例,5是奇数,仅最低8位“1”的个数,控制标志,方向

15、标志DF(Direction Flag) 仅用于串操作指令中,控制地址的变化方向 设置DF0,存储器地址自动增加 设置DF1,存储器地址自动减少 中断允许标志IF(Interrupt-enable Flag) 控制外部可屏蔽中断是否可以被处理器响应 设置IF1,允许中断;设置IF0,禁止中断,2.3.1 IA-32工作方式,实地址方式(16位段):real address mode 上电或复位时,自动进入实地址方式,主要是为了80386进入初始化用的,为80386保护方式所需要的数据结构做好各种配置和准备,因此,这是一种为建立保护方式作准备的方式。 寻址机构、存储器管理、中断处理均与8086一

16、样。 操作数默认长度为16位,但允许访问80386的32位寄存器组,但在指令中要加上前缀表示越权存取。 ds:eax 存储器最大容量为1MB;采用分段方式,逻辑段最大不超过64KB。 段基地址和偏移量都用16位表示。 存储器保留两个固定区域:初始化程序区(FFFF0FFFFFH),中断向量区(00000003FFH)。,2.3.1 IA-32工作方式,保护方式(32位段):protected virtual address mode 80386最常用方式,通常在开机或复位后,先进入实地址方式完成初始化,便立即转入到保护方式。它提供了多任务环境中的各种复杂功能以及对复杂存储器组织的管理机制。只有在保护方式下,80386才发挥其强大的功能和本性,故也称本性方式。所谓保护,主要是

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

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

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