IntelCPU分为32位和64位,32位CPU称为IA32,64位CPU称为IA64。
基本寄存器:
8个32位的通用寄存器,EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP
6个16位的段寄存器,CS、DS、SS、ES、FS、GS
1个32位的EFLAGS寄存器,EFLAGS
1个32位的指令指针寄存器,EIP
FPU寄存器:
8个80位的浮点数寄存器,ST0~ST7
1个16位的控制寄存器
1个16位的状态寄存器
1个16位的标签寄存器
1个11位的操作码寄存器
1个48位的FPU指令指针寄存器
1个48位的FPU数据指针寄存器
MMX寄存器:
8个64位的MMX寄存器,MM0~MM7
XMM寄存器:8个128位的XMM寄存器,XMM0~XMM71个32位的MXCSR寄存器
寻址空间:
0~2^32-1
除此之外,还有其它的寄存器。
控制寄存器
CR0~CR4
系统表指针寄存器
GDTR
LDTR
IDTR
任务寄存器
调试寄存器
MSR寄存器
基本寄存器:
16个64位的通用寄存器,RAX、RBX、RCX、RDX、RSI、RDI、RBP、RSP、R8~R15
6个16位的段寄存器,CS、DS、SS、ES、FS、GS
1个64位的RFLAGS寄存器,RFLAGS(高32位保留,第32位同FLAGS)
1个64位的指令指针寄存器
FPU寄存器:
8个80位的浮点数寄存器
1个16位的控制寄存器
1个16位的状态寄存器
1个16位的标签寄存器
1个11位的操作码寄存器
1个64位的FPU指令指针寄存器
1个64位的FPU数据指针寄存器
MMX寄存器:
8个64位的MMX寄存器
XMM寄存器:
16个128位的XMM寄存器
1个32位的MXCSR寄存器
地址空间:
0~2^64-1
除此之外,还有其它的寄存器。
控制寄存器
CR0~CR4
系统表指针寄存器
GDTR
LDTR
IDTR
任务寄存器
调试寄存器
MSR寄存器
Intel的CPU指令集中,对寄存器的用途有一套约定用法,大多数指令都遵守这套约定。
段寄存器:
CS: Code Segment
DS: Data Segment
SS: Stack Segment
ES: Data Segment
FS: Data Segment
GS: Data Segment
堆栈:
ESP/RSP: Stack pointer (in the SS segment)
EBP/RBP: Pointer to data on the stack(in the SS segment)
通用寄存器:
EAX/RAX: Accumulator for operands and reulst data
EBX/RBX: Pointer to data in the DS segment
ECX/RCX: Counter for string and loop operations
EDX/RDX: I/O pointer
ESI/RSI: Pointer to data in the segment pointed to by the DS register; source pointer for string operations
EDI/RDI: Pointer to data (or destination) in the segment pointed to by the ES register; destination pointr for string operations