3.2 基本执行环境概述
运行于IA-32处理器上的任何程序或任务都被给予一套的资源来执行指令,存储代码,数据和状态信息。这些资源构成了IA-32处理器的基本执行环境。基本执行环境会被运行于处理器上的应用程序和操作系统或执行者组织利用。
l 地址空间:运行于IA-32处理器上的任何任务或者程序可以寻址多达4GByte的线性地址空间和多达64GByte的物理地址空间。关于寻址大于4GByte的地址空间详见3.3.6小节,“保护模式下的物理地址扩展”。
l 基本寄存器:8个通用寄存器,6个段寄存器,一个EFLAGS寄存器和一个指令指针寄存器(EIP)组成了用于执行通用指令的基本执行环境。这些指令可以完成基本的基于字节,字和双字的整数运算,控制程序流程,基于位和字节的字符串操作,以及寻址内存。这些寄存器的详细信息见3.4小节。
l X87 浮点运算单元(FPU)寄存器:8个x87 FPU数据寄存器,一个x87 FPU控制寄存器,一个状态寄存器,一个X87 FPU指令指针寄存器,一个X87 FPU 操作数指针寄存器,一个X87 FPU标签寄存器和一个X87 FPU操作码寄存器构成了用于单精度,双精度,扩展双精度的浮点值,字整型,双字整型,四字整型和BCD码的操作的基本执行环境。
l MMX™寄存器:8个XMM数据寄存器和一个MXCSR寄存器支持执行基于64位的字节,字,双字整数的单指令,多数据操作。详细信息见9.2小节“MMX技术编程环境”。
l XMM寄存器:8个XMM数据寄存器和一个MXCSR寄存器支持执行基于128位的的单精度,双精度浮点数值以及128位的字节,字,双字和四字整数的单指令多数据(SIMD)操作。详细信息见10.2小节“SSE编程环境”。
l 堆栈:为了支持过程和子程序的调用以及在过程和子程序间传递参数,基本执行环境设置了一个堆栈和堆栈管理器。这个堆栈位于内存中,详细信息见6.2小节“堆栈”。
作为对基本执行环境的补充,IA-32架构提供了如下系统级架构的资源。他们可以为操作系统和系统开发软件提供扩展支持。除了I/O端口,其他资源的详细信息在第《Intel开发者手册》3A卷和3B卷介绍。
l I/O端口:IA-32架构支持端口的数据读写。详细信息见第13章节,“输入/输出”。
l 控制寄存器:5个控制寄存器决定了处理器的操作模式和当前执行任务的属性。详细信息见《Intel开发者手册》3A卷,第二章“系统架构概览”。
l 内存管理寄存器:GDTR,IDTR,任务寄存器和LDTR指定了在保护模式中用到的数据机构的位置。详细信息见《Intel开发者手册》3A卷,第二章“系统架构概览”。
l 调试寄存器:调试寄存器(DR0到DR7)控制并允许监视处理器的调试操作。详细信息见《Intel开发者手册》3A卷,第二章“系统架构概览”。
l 内存类型范围寄存器(MTRRs):MTRRs用来分配内存的类型到内存的各个领域。详细信息见《Intel开发者手册》3B卷。
l 机器特性寄存器(MSRs):处理器提供了多个机器特性寄存器用于控制和报告处理器的性能。事实上所有的MSRs处理系统相关的函数并且对应用程序不可见。此规则的一个例外是时间戳计数器。详细信息见《Intel开发者手册》3B卷,附录“模式相关寄存器”。
l 机器检验寄存器:机器检验寄存器有一套控制,状态和错误报告MSRs组成,他们用来检测并报告硬件错误。详细信息见《Intel开发者手册》3A卷,第14章节“机器检验体系”。
l 性能监测计数器:性能监测计数器允许监测处理的性能事件。详细信息见《Intel开发者手册》3B卷,第18章节“调试和性能监测”。
本章节剩下的内容介绍内存和地址空间的组织,程序执行寄存器,寻址模式。下表列出了本章节中用于描述基本执行环境时引用的其他资源的详细信息所在章节:
l x87 FPU 寄存器:第8章节“使用x87FPU编程”
l MMX寄存器:第9章节,“使用Intel MMX 技术编程”
l XMM寄存器:第10章节,第11章节,第12章节
l 堆栈实现和过程调用:第6章节,“过程调用,中断和异常”