第2章Intel IA-32处理器结构与原理.ppt

上传人:fatcommittee260 文档编号:373561 上传时间:2018-10-05 格式:PPT 页数:69 大小:1,022.50KB
下载 相关 举报
第2章Intel IA-32处理器结构与原理.ppt_第1页
第1页 / 共69页
第2章Intel IA-32处理器结构与原理.ppt_第2页
第2页 / 共69页
第2章Intel IA-32处理器结构与原理.ppt_第3页
第3页 / 共69页
第2章Intel IA-32处理器结构与原理.ppt_第4页
第4页 / 共69页
第2章Intel IA-32处理器结构与原理.ppt_第5页
第5页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、1,第2章 Intel IA-32处理器结构与原理,2,2.1.1 基本概念,1. 流水线,把一条指令的操作分成多个更小的步骤,每个步骤的操作由专门的电路完成。 利用各电路间可并行执行的特点,让各个步骤的执行在时间上重叠起来。,2.1 Pentium处理器,3,2. CISC与RISC技术,复杂指令集计算机(CISC) :指令格式比较复杂,通常采用不等长指令设计,指令的寻址方式丰富,绝大多数指令的执行需要多个时钟周期。 缺点:,随着计算机结构的改进,指令的功能和指令条数增加,指令系统变得异常庞大。 复杂的指令格式和众多的寻址方式使得组合逻辑电路设计更为复杂,采用微程序又会降低执行速度。 复杂不

2、规整的指令会降低流水线的性能 随着指令条数的增加,完成同一任务的指令组合变多,编译系统在最后优化的时候分析就变得更加困难,4,简单指令集计算机(RISC):通过简化指令,使得计算机的结构变得简单、合理,从而提高CPU的执行速度。,优化指令系统,只选用使用频率高的指令,减少指令条数。 采用简单的指令格式和寻址方式,指令的长度固定,大多数指令能在一个时钟周期内完成。 除了Load/Store指令能访问存储器外外,其他任何指令的操作数或者为立即数或者存放在寄存器中,因此,进行的是寄存器与寄存器之间从操作。通常RISC处理器设计了大量的寄存器临时存放数据。 由于计算机结构简单,所以主要采用硬布线逻辑,

3、较少使用或者不用微程序控制。,5,3. 高速缓冲存储器(Cache),主机,主存,高速缓冲存储器,Cache的设立依据是程序访问的局部性原理 :,for(int i; i100; i+) ai=i*i; ,6,2.1.2 Pentium处理器的特性,80x86系列微处理器兼容 有64位数据总线、 32位地址总线,寻址空间4GB。 RISC型超标量结构 - 两个5级整数指令流水线,一个8级浮点流水线。 具有超级流水线技术的高性能浮点运算器。 数据-代码分离式高速缓存,符合MESI协议。 增强的错误检测和报告功能。 利用片上分支目标缓冲器提高分支指令预测准确性。 常用的指令不采用微程序设计,而改用

4、硬件实现。 支持64位外部数据总线突发传输方式 通过APIC总线支持多处理器系统,7,=指令预取 =首次译码 =二次译码 =指令执行 =写回R,2.1.3 Pentium处理器的内部结构与工作原理,8,指令配对规则,配对的指令必须是简单指令 两条指令之间不可存在“写后读”或“写后写”这样的寄存器相关性 一条指令不能同时既包含位移量又包含立即数 带前缀(JCC指令的OF除外)的指令只能出现在U流水中 浮点运算指令不能和任何指令配对(FCXH除外),下面两条指令是否可配对?,MOV AX, 200 MOV CX, AX,MOV AX, 200 MOV AX, 412,写后读,写后写,9,2.2 P

5、6微结构的处理器,2.2.1 P6微结构概述,采用12级3流水超标量结构 多路分支预测 -预测分支未来的方向,为处理器预 先译码分支之后的指令提供依据 动态数据流分析 - 处理器分析几条指令的数据相关性和资源可用性 - 以优化的执行顺序高效地乱序执行这些指令 推测执行 - 在假设分支走向基础上,执行其中一路指令流 双独立总线结构 - 后端总线连接到L2 Cache上 - 前端总线FSB主要负责主存储器的信息传送操作,10,关于乱序执行技术,为了提高指令流的执行效率,乱序执行核心监视很多条指令,然后在不损失数据完整性的前提下,采用能充分发挥多个处理部件并行工作的指令顺序来执行。这个指令顺序可能和

6、原始程序的不一样。,1)A=B+C 2)P=A*2 3)Q=D-E,1)和3)可配对同时执行,11,2.2.2 Pentium III处理器内部结构及工作原理,12,2.3 NetBurst微结构的处理器,2.3.1 NetBurst微结构概述,1. 超级流水线技术,衡量CPU的性能指标是CPU完成应用程序所需的总时间。其计算公式如下:CPU性能=CPU的主频IPC IPC是每时钟执行的指令条数。 要提高CPU性能,可采用提高CPU主频和提高IPC。要提高主频减少每个流水级的执行周期要减小每个流水级的任务量将任务再分解增加流水线深度,13,2.快速执行引擎,NetBurst微结构中配置了一种时

7、钟缓冲器电路,可以使该结构下2个执行简单指令的ALU和2个存储地址AGU运行在两倍的CPU核心频率下,3.高级动态执行,一个高达126条指令的超大指令窗口,避免了处理器为了等待配对指令而出现暂时的停顿,也减少了因Cache没命中,到主存中获取数据而产生等待的次数。 一个4KB的分支目标缓冲器BTB记录更多的过去分支的历史细节,再配以改进的分支预测算法,使分支预测失误率比Pentium III下降了33 。,14,4. 执行跟踪Cache(execution trace Cache),放弃L1 指令Cache的设计,采用执行跟踪Cache,它在译码器的后面,按程序流顺序存放已经译码好的最多12,

8、000条微指令,,5. 高速系统总线,采用了一种 “四倍速”技术quad pumping,使得前端总线能很方便的工作再4倍于系统总线的频率上。,6. 高级传输Cache,采用8路相联的片内L2 Cache ,与核心同频工作,与CPU核心的专用总线宽度为256位,是过去的4倍,这样主频为2.8GHz的Pentium 4其数据带宽将为89.6GBps。,15,2.3.2 Pentium 4处理器内部结构及工作原理,16,2.3.3 SIMD技术,57条MMX指令操作8个64位长的MMX寄存器内的紧缩字节(8个字节打包成一个64位长的数据)、字或双字整型数上执行SIMD 70条SSE指令处理在8个1

9、28位的XMM寄存器中的单精度浮点数和在MMX寄存器中的紧缩整数。高速缓存控制指令通过增加主存到Cache和处理器到主存的数据流,改善存储性能,SIMD浮点指令使处理器能同时执行4个浮点操作。 144条SSE2指令处理在XMM寄存器中的紧缩双精度浮点数和在MMX与XMM寄存器中的紧缩整数。 13条SSE3指令增强SSE, SSE2和x87FPU数学能力的性能。,17,2.3.4 超线程(Hyper-Threading, HT)技术,允许物理上单个的处理器采用共享执行资源的方法同时执行两个或更多的分离代码流(线程) HT技术由单处理器上的2个或者多个逻辑处理器组成,每个逻辑处理器都有自己的IA-

10、32结构状态(AS) 每个逻辑处理器都有自己的IA-32通用寄存器、段寄存器、控制寄存器、调试寄存器等 逻辑处理器共享的资源包括执行引擎和系统总线接口,18,2.3.5 多核(Dual-Core)技术,通过在一个物理封装中包含两个分离的完整执行核来提供硬件多线程能力 每个完整的执行核不仅有自己的AS,还拥有自己的执行引擎,总线接口与L2 Cache 。 结构上有支持HT技术的和不支持HT技术的双核结构,Pentium D IA-32处理器,AS,AS,执行引擎,执行引擎,Local APIC,Local APIC,L2 Cache,L2 Cache,总线接口,总线接口,Pentium EE I

11、A-32处理器,系统总线,AS,AS,执行引擎,执行引擎,Local APIC,L2 Cache,L2 Cache,总线接口,总线接口,系统总线,AS,AS,Local APIC,Local APIC,Local APIC,19,AMD的双核,Intel的双核,20,2.3.6 Intel的EM64T技术,完全兼容现在的IA-32结构 具有传统IA-32模式和IA-32e模式,IA-32e模式包括64位模式和兼容模式(允许现有程序无需修改就运行在传统IA-32模式和兼容模式下) 64位模式下具有以下特性: 64位平板线性地址 增加8个新的通用寄存器 增加8个新的流SIMD扩展(SSE, SSE

12、2和SSE3) 64位宽的通用寄存器和指令指针寄存器,21,2.4 Core微结构的处理器,2.4.1 Core微结构的引入,NetBurst微结构的缺陷: IPC表现不佳,同频情况下Pentium 4有时还不如前代的Pentium III 频率提高后,功耗随之上升,功耗过高,影响了主频的进一步提高。 Power = Cdynamic电压电压频率 其中Cdynamic是面积与处于活跃状态的数据位翻转的触发器数量的乘积。,22,Core微结构的处理器系列,桌面平台的Conroe 移动平台的Merom 服务器平台的Woodcrest,Core处理器 Core 2处理器,单核的Core Solo 双

13、核的Core Duo, Core 2 Duo 四核的Core 2 Quad,23,2.4.2 Conroe处理器内部结构与特点,Core微结构,24,Conroe处理器内部结构示意图,25,宽位动态执行(Wide Dynamic Execution) 着眼点在于提高每时钟周期处理的指令数,改善执行时间和能源效率,同时完整的取、发射、执行4条指令 宏融合(macrofusion)技术能够在译码期间将常见的指令对组合到一个单独的微代码中(Micro-op) 微代码融合(Micro-op fusion)技术能在微代码执行前将译码自同一个x86指令的几个微代码融合成更少的微代码,26,智能功效管理(I

14、ntelligent Power Capability) 超细粒度功耗控制能够只对处于工作状态的部件提供电源,而关闭非工作部件的电源供应,从而有效降低功耗。 分离总线技术能够使总线宽度动态适应数据宽度的需要,对无效的信息位使其进入低电压状态,从而进一步降低功耗。 功效管理平台技术通过调整散热风扇运作模式,从外部降低处理器温度。,27,Intel 智能内存访问(Intel Smart Memory Access) 内存消歧技术利用装载(load)数据指令和存储(store)数据指令之间的乱序执行来提高乱序执行部件的效率 高级预取技术解决了确保被使用的数据已经位于最靠近能获得最小内存延迟的地方的问

15、题。,28,Intel高级智能Cache (Intel Advanced Smart Cache) 采用了共享L2 Cache的双核结构 可以在两个核心间动态调整L2 Cache的分配,29,2.4.4 45nm的酷睿2处理器Penryn的新特性,英特尔的45nm高K金属栅极制程技术 晶体管密度提升近一倍 晶体管切换功耗降低近 30% 晶体管切换速度提高 20% 以上,源极漏极漏电率降低5倍以上 晶体管栅极氧化层漏电率降低 10 倍以上,从而实现更低的功耗和更耐久的电池使用时间,30,全新英特尔SSE4.1指令 增加对两个不同的 32 位向量整数乘法操作的支持 引入 8 位无符号的最小/最大操

16、作,以及 16 位和 32 位有符号和无符号的版本 添加高度专用的操作,从而带来显著的应用级增益 视频编码加速功能 浮点点积操作(对于游戏和 3D 内容创建非常重要) 流加载指令(对于视频处理、成像,以及在图形处理器和处理器之间共享数据的应用非常重要),31,增强的大型英特尔 高级智能高速缓存 二级高速缓存增大 50%并搭配24路组相联设计,可进一步提高命中率并最大限度提升使用率。 增强型英特尔 虚拟化技术 通过改进微体系结构而不是虚拟机软件,使虚拟机迁移速度平均提高25-75%。 快速 Radix-16 除法器 可在每次迭代中计算4位的商(上代是2位),从而使延迟降低了2倍。 增强型英特尔

17、动态加速技术 当一个内核处于空闲状态时,该增强特性可利用该内核释放的性能扩展空间(如电能),来提升另一个仍处于激活状态的内核性能。,32,2.5 Nehalem微架构的处理器,Nehalem微架构基本特点 原生四核结构 采用SMT技术,每核可同时执行2个线程 4发射超标量,每核四条16级流水线 48位虚拟地址空间,40位物理地址空间 45nm芯片工艺,33,Nehalem微架构的新特点 更大的并行性 增加了乱序考察窗和调度表 改进后的更高效的算法 加快线程同步原语的执行 加快了分支预测失败时的处理速度 改进了硬件预取和Load-Store调度 提高了分支预测的性能 新增加了2级分支目标缓冲器,

18、增大了对指令流历史的记录 新增加了重命名式返回栈缓冲,存放CALL指令的返回地址,并防止返回栈缓冲溢出,34,Nehalem微架构的新特点 采用SMT(同时多线程)技术 同一个执行核能同时执行两个线程 新的缓存结构 与Core微架构一样的L1 Cache(32KB指令Cache与32KB数据Cache) 每个核配新的256KB极低延迟L2 Cache 新增8MB包含共享式 L3 Cache,当L3 Cache没有命中,则数据肯定不在L1和L2 Cache中 集成了内存控制器 支持3通道的DDR3内存,35,Nehalem微架构的新特点 用QuickPath代替了前端总线(FSB) 最大带宽高达

19、25.6GB/s 采用高速差分信号传送 采用点到点互连技术,不仅连接CPU和北桥,还作为CPU与CPU之间的连接,36,2.6 IA-32处理器基本执行环境,实地址模式 - 与8086/8088兼容,但可以处理32位数据 - 1MB内存空间,分段管理,所有程序全在0 (核心)级 - MS-DOS运行在此模式下,PC机开机首先进入的也 是该模式 - 对内存和程序甚至操作系统没有任何保护能力,保护模式 - 支持多任务操作,并保护每个任务的数据和程序 - 存储器采用虚拟地址空间、线性地址空间和物理地址空间三种方式来描述,具有存储保护功能 - 虚拟地址空间64TB(246) - 4级管理,可以使用分页

20、或分段技术管理内存 - Windows、Linux操作系统均运行在该模式下,37,虚拟8086模式(V86模式),系统管理模式 - 为操作系统和正在运行的应用程序提供透明的电源管理和系统安全平台功能 - 进入本模式系统将转到一个独立的地址空间运行,并保存当前程序或任务的基本环境,- 在保护模式下可以同时模拟多个8086处理器的工作,38,IA-32e模式(支持Intel EM64T的IA-32处理器才有),兼容模式 类似于32位保护模式,传统的16位或32位程序无需重新编译就可以运行在64位操作系统中。在64位模式和保护模式下支持的所有特权级别在兼容模式同样支持。 64位模式 允许64位操作系

21、统运行存取64位线性地址空间的应用程序,程序可访问的线性地址空间达到264字节,物理地址空间增加到240字节。通用寄存器的宽度增加到64位,并新增了8个通用寄存器和8个SIMD寄存器。,39,工作模式的转换,40,2.6.2 IA-32处理器中的寄存器,基本寄存器,系统级寄存器,调试与测试寄存器,浮点寄存器,通用寄存器,指令指针寄存器,标志寄存器,段寄存器,控制寄存器,系统地址寄存器,数据寄存器,地址指针寄存器,变址寄存器,41,AH AL BH BL CH CL DH DL SP BP DI SI,累加器 基址变址 计数 数据 堆栈指针 基址指针 目的变址 源变址,32位,1.通用寄存器,1

22、6位,AX BX CX DX SP BP DI SI,16位名称,AX、BX、CX、DX、SP、BP、DI、SI分别是EAX、EBX、ECX、EDX 、ESP、EBP、EDI、ESI的低16位 AL、BL 、CL、DL分别是AX、BX、CX、DX的低八位 AH、BH 、CH、DH分别是AX、BX、CX、DX的高八位,EAX EBX ECX EDX ESP EBP EDI ESI,32位名称,高16位扩展,42,1.通用寄存器,EAX 累加器 存放操作数和结果,乘除运算、I/O指令中特指 EBX 基址寄存器 查表转换和间接寻址时存放基址 ECX 计数寄存器 串操作和循环中做计数 EDX 数据寄存

23、器 乘除运算、I/O指令中特指,可以32位、16位或8位形式访问,例如,EAX可使用16位的AX,也可以使用8位的AH、AL,43,1.通用寄存器,ESP 堆栈指针寄存器,存放栈顶地址 EBP 基址指针寄存器,存放栈段基地址 ESI 源变址寄存器 EDI 目的变址寄存器,存放地址的偏移量,也可存放操作数, 但只能以32位或16位为单位访问 如:ESI可以使用16位的SI,44,64位模式下的通用寄存器,45,2.段寄存器,CS 代码段寄存器 DS 数据段寄存器 SS 堆栈段寄存器 ES 附加段寄存器 FS、GS 附加段寄存器,段寄存器均为16位的寄存器 用于存储器寻址,存放段的开始地址 在64

24、位模式下,FS, GS无效,CS, DS, ES, SS均指向基地址为0的“段”。,46,3.指令指针寄存器,EIP 指令指针寄存器:即程序计数器,指向下一条指令在代码段中的偏移量,16位的IP,高16位扩展,32位指令指针寄存器EIP,64位模式下,扩展高8位成为64位RIP,32位的EIP,高32位扩展,64位指令指针寄存器RIP,47,EFLAGS 标志寄存器( 程序状态字寄存器PSW ):记录系统运行中的各种状态 和信息。由各种标志位构成,反映运算后的结果特征,将影响某些指令(如条件转移指令)的执行。,4.标志寄存器,48,8086/8088程序状态寄存器(标志寄存器)b15 b8 b

25、7 b0OF DF IF TF SF ZF AF PF CF符号 名称 值为“1”的条件 CF 进位标志 加/减法时产生进位/借位OF 溢出标志 运算结果超出有符号整数能表示的范围ZF 零标志 运算结果为0时SF 符号标志 运算结果的最高位为“1”时AF 辅助进位标志 运算时半字节(b3)产生进位/借位PF 奇偶标志 操作结果低8位为“1”的位数为偶数时DF 方向标志 串操作中地址指针向低地址方向移动IF 中断允许标志 允许CPU响应可屏蔽中断请求时TF 跟踪标志 CPU处于单步执行的工作方式,49,思考题:以下的几个4位十六进制数相加,会使得8088状态寄存器的以下几位为什么值?,1 1 0

26、 1 0 1,1 1 0 0 1 0,0 0 1 0 1 1,0 0 0 0 1 0,50,注意: 进位标志CF是表示无符号数是否超出范围,但运算结果仍然正确; 溢出标志表示的是有符号数运算结果是否超出范围,超出范围则运算结果已经不正确; 处理器对两个操作数进行运算的时候是按照无符号数求得结果,并相应设置CF,根据是否超出有符号数的范围设置OF; 对于程序员,如果做无符号运算,应该关心CF,做有符号运算应该关心OF。,51,符号 名称 值为“1”的条件 IOPL IO特权位 其值表示该任务使用的I/O操作的特权级00为最高的核心级,11是最低的用户级NT 嵌套标志 当前任务嵌套在另一个任务中时

27、RF 恢复标志 DBUG调试时忽略下一条指令遇到的断点VM 虚拟8086模式 从保护模式进入到虚拟8086模式AC 对齐检查 当有数据访问出现对齐故障的时候VIF 虚拟中断位 允许V86扩展或允许保护模式虚拟中断VIP 虚拟中断挂起位 虚拟中断被挂起ID 标识位 对它的读写表明处理器支持CPUID,这部分同8088,OF,3122 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,DF,IF,TF,SF,ZF,AF,CF,PF,IOPL,NT,RF,VM,AC,VIF,VIP,ID,保 留,IA-32 标志寄存器EFLAG,52,5

28、. 控制寄存器,31 12 11 4 3 0,PWT,PCD,页目录基地址寄存器,CR3,页故障线性地址寄存器,CR2,31 0,保 留,CR1,WP,31 30 29 18 17 16 5 4 3 2 1 0,NE,ET,PE,MP,NW,CD,PG,CR0,31 0,EM,TS,AM,PGE,PCE,31 10 9 8 7 6 5 4 3 2 1 0,MCE,PAE,PSE,DE,TSD,VME,PVI,保留,缺省为全0,CR4,*,*,* OSFXSR * OSXMMEXCPT,53,写保护 定位屏蔽 允许分页 禁止Cache 不写贯穿,保护模式允许 浮点协处理器监控 模拟浮点协处理器

29、任务切换 处理器扩展类型 数值异常,WP,31 30 29 18 17 16 5 4 3 2 1 0,NE,ET,PE,MP,NW,CD,PG,CR0,EM,TS,AM,CR0是在以前286MSW(机器状态字)基础上扩展来的,可在核心级中用MOV EAX, CR0/MOV CR0, EAX指令来读取和写入。,54,禁止Cache页面写贯穿,31 12 11 4 3 0,PWT,PCD,页目录基地址寄存器,CR3,55,性能计数器允许 页全局允许 允许机器检查 物理地址扩展 页大小扩展位 调试扩充位 禁止定时标志 保护模式虚拟中断 虚拟8086模式扩展,PGE,PCE,8,31 7 6 5 4

30、3 2 1 0,MCE,PAE,PSE,DE,TSD,VME,PVI,保留,缺省为全0,CR4,56,6 系统地址寄存器,GDTR 48位的全局描述符表寄存器,全局描述符表32位线性地址,16位界限值,IDTR 48位的中断描述符表寄存器,中断描述符表32位线性地址,16位界限值,TR 16位的任务状态段寄存器,TSS的16位选择字,LDTR 16位的局部描述符选择字寄存器,LDT的16位选择字,57,当机器复位的时候CS=FFFFH,EIP, DS, ES, SS, FS, GS以及EFLAGS寄存器被清零。因为复位之后CS:EIP= FFFF:00000000,因此机器复位或开机后,都会自

31、动从这个地址开始取指令,这里应该是BIOS的第一条指令。,58,1. Pentium的基本数据类型,1) 整型数据类型包括无符号数和有符号数,其中有符号数以2的补码形式表示,最高位为符号位,1表示负数,2.6.3 IA-32处理器在实地址模式下的存储管理,59,2) 浮点数据类型最高位为符号位,接下来是有效数和阶码,有效数给订了数的有效位数,决定数的精度;阶码决定数据范围。,60,3) 指针数据类型指针是用于定位存储单元的地址,包括近指针和远指针。 16位模式下,近指针为段内16位有效地址,远指针包括16位段选择器和16位段内有效地址 32位模式下,近指针为段内32位有效地址,远指针包括16位

32、段段选择器和32位段内有效地址 64位模式下,近指针为64位有效地址;操作数是32位时,远指针包括16位段段选择器和32位(16位)段内有效地址,操作数是64位时,远指针包括16位段段选择器和64位段内有效地址,61,4) 位域(field)数据类型是一个连续的二进制位序列,可以从存储器任何一个字节的任何一位开始。可包含32位数据。,5) 串数据类型是一个连续的位、字节、字或双字序列,位串可以从存储器任何一个字节的任何一位开始,并可包含232-1位,字节、字或双字串可包含232字节。,6) BCD和压缩BCD数据类型用4位无符号二进制数表示十进制的09。压缩BCD每个字节包含二位十进制数,非压

33、缩BCD数每字节的低4位表示一个十进制数,高4位为0。,62,2.存储单元的地址和内容 以字节为单位编址,即一个字节数据占一个存储单元,以字、双字、四字为单位存储数据时,分别占相邻2个、4个、8个连续字节单元, 高8位存放在高地址字节,低8位存放在低地址字节,高位字存放在高地址区,低位字存放在低地址区字、双字、四字单元的地址由其最低字节的地址来表示。 字、双字、四字的地址一般采用边界对齐,即它们地址分别是偶数地址,4的倍数和8的倍数。如果边界不对齐,Pentium会采用两个总线周期来完成操作,或者直接报错,如果边界对齐,则只用一个总线周期完成操作。,63,存储单元的地址和内容,0000H 00

34、01H 0002H 0003H 0004H 0005H 0006H 0007H,0000H地址上, 字节数据是12H 字数据是3412H 双字数据是78563412H 四字数据是FFDEBC9A78563412H,64,3. 实模式存储器寻址在此模式下,IA-32可以理解成是一个可处理32位数据的高速的8086。 a. 存储器地址的分段,解决16位寄存器表示20位地址的问题段是最大长度为64KB的连续的内存储器块,物理地址 每个存储单元的20位实际地址,有唯一性,访问主存时必须用物理地址逻辑地址 每个存储单元的地址用两部分表示:段基址(段首址的高16位)偏移量 (段内某单元相对段首址的地址差,

35、也称为有效地址EA),65,6417H0100H 6417H10H + 0100H = 64170H + 0100H = 64270H 几个不同的逻辑段地址在物理地址上是可重叠的,物理地址=段基址16+偏移量 书写形式:段基址:偏移量,66,b、段寄存器与段IA-32的6个16位的段寄存器,专门存放段基地址代码段存放当前程序的指令代码数据段存放程序涉及的源数据或结果堆栈段是以“先入后出”为原则的数据区附加段是辅助数据区,存放串或其他数据,用户可以同时使用6个段,段间可以邻接、部分重叠、 重叠或不相邻,但注意,段的实体(被实际使用的段空间)是不能重叠的。,67,段寄存器和相应存放偏移地址的寄存器

36、之间的默认组合,段 32位偏移 16位偏移 CS EIP IP SS ESP或EBP SP或BP DS EAX、EBX、ECX、 EDX、 BX、SI、 DI、EDI、 ESI、一个8或32位数 一个8或16位数 ES EDI(用于串指令) DI FS 无默认 无默认 GS 无默认 无默认,3. 保护模式存储器寻址,请参照第4章课件,68,4. 关于堆栈,堆栈是内存中“先入后出”、最大空间为64KB的存储区域,栈底地址大于栈顶地址 栈区最高地址1的单元为栈底,最后进栈数据所对应的地址单元为栈顶 SS指向栈的起始单元(非栈底) SP寄存器动态跟踪栈顶位置,初始化时SP的值为堆栈的长度,即指向栈底+2单元 将数据送入堆栈叫压栈,从栈中取出数据叫弹出,均以字为单位,69,

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

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

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1