CPU为指令的执行提供了一个基本的环境,而一条普通指令得以执行所需的基本环境无非就是:内存+寄存器而已。
CPU的基本执行环境:
1)地址空间(Address space)。非64位模式下,可最大支持4GB的线性地址空间,和最多可达64GB的物理地址空间。64位模式下,可最大支持2^64B的线性地址空间,和最多可达2^40B的物理地址空间。
2)基本的寄存器集合(Basic program execution registers)。非64位模式下,包括8个通用寄存器,6个段寄存器,EFLAGS寄存器,EIP寄存器;64位模式下,通用寄存器的数量增加到16个,而其有64位宽,EIP扩展为64位的RIP,EFLAGS扩展到64位的RFlAGS,虽然最高的32位为保留位。这些寄存器已经满足普通的指令的运行所需。
3)x87浮点寄存器(x87 FPU registers)。包括8个x87 FPU数据寄存器,一个x87 FPU控制寄存器,一个状态寄存器,一个x87 FPU指令寄存器,一个x87 FPU 操作数指针寄存器,一个x87 FPU标签寄存器,一个x87 FPU操作码寄存器。这些寄存器已经满足各种浮点运算指令的所需,包括单精度运行、双精度运算、word大小的整数运算、doubleword大小的整数运算、quadword大小的整数运算、BCD形式的整数运算。
4)MMX寄存器(MMX registers)。包括8个MMX寄存器(64位宽),用于支持SIMD操作,如同时作用于8个byte大小的整数的SIMD操作,或同时