(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
通用寄存器
64-bit
|
32-bit
|
16-bit
|
8 high bits
|
8 low bits
|
描述
|
RAX
|
EAX
|
AX
|
AH
|
AL
|
Accumulator累加器
|
RBX
|
EBX
|
BX
|
BH
|
BL
|
Base
|
RCX
|
ECX
|
CX
|
CH
|
CL
|
Counter计数器
|
RDX
|
EDX
|
DX
|
DH
|
DL
|
Data数据
|
RSI
|
ESI
|
SI
|
N/A
|
SIL
|
Source来源
|
RDI
|
EDI
|
DI
|
N/A
|
DIL
|
Destination目标
|
RSP
|
ESP
|
SP
|
N/A
|
SPL
|
Stack Pointer堆栈指针
|
RBP
|
EBP
|
BP
|
N/A
|
BPL
|
Stack Base Pointer堆栈基指针
|
指针寄存器
64-bit
|
32-bit
|
16-bit
|
描述
|
RIP
|
EIP
|
IP
|
指令指针
|
段寄存器
16-bit
|
描述
|
CS
|
代码段
|
DS
|
Code Segment数据段
|
ES
|
Extra Segment额外段
|
SS
|
Stack Segment堆栈段
|
FS
|
General Purpose F Segment通用F段
|
GS
|
General Purpose G Segment通用G段
|
EFLAGS寄存器
Bit
|
Label
|
描述
|
0
|
CF
|
Carry flag携带标志
|
2
|
PF
|
Parity flag奇偶标志
|
4
|
AF
|
Auxiliary flag辅助标志
|
6
|
ZF
|
Zero flag零标志
|
7
|
SF
|
Sign flag标志标志
|
8
|
TF
|
Trap flag陷阱标志
|
9
|
IF
|
Interrupt enable flag中断启用标志
|
10
|
DF
|
Direction flag方向标志
|
11
|
OF
|
Overflow flag溢出标志
|
12-13
|
IOPL
|
I/O privilege level I/O权限级别
|
14
|
NT
|
Nested task flag 嵌套任务标志
|
16
|
RF
|
Resume flag 回复标志
|
17
|
VM
|
虚拟8086模式标志
|
18
|
AC
|
Alignment check 对齐检查
|
19
|
VIF
|
Virtual interrupt flag 虚拟中断标志
|
20
|
VIP
|
Virtual interrupt pending 虚拟中断待处理
|
21
|
ID
|
Able to use CPUID instruction 能够使用CPUID指令
|
未列出的位被保留。
Control Registers 控制寄存器
CR0
Bit
|
Label
|
描述
|
0
|
PE
|
Protected Mode Enable 保护模式启用
|
1
|
MP
|
Monitor co-processor 监控协处理器
|
2
|
EM
|
x87 FPU仿真
|
3
|
TS
|
Task switched 任务切换
|
4
|
ET
|
Extension type 扩展类型
|
5
|
NE
|
Numeric error 数字错误
|
16
|
WP
|
Write protect 写保护
|
18
|
AM
|
Alignment mask 对齐掩码
|
29
|
NW
|
Not-write through 未写入
|
30
|
CD
|
Cache disable 缓存禁用
|
31
|
PG
|
Paging 分页
|
注意: 该寄存器是唯一可以通过两种方式写入和读取的控制寄存器,而其他方式只能通过MOV指令访问
; First way:
; Write:
mov cr0, reg
; Read:
mov reg, cr0
; ----------------------
; Second way:
; Write:
lmsw reg
; Read:
smsw reg
CR1
保留,CPU在尝试访问时会抛出 # UD异常。
CR2
Bit
|
Label
|
描述
|
0-31 (63)
|
PFLA
|
Page Fault Linear Address 页面故障线性地址
|
CR3
Bit
|
Label
|
描述
|
PAE
|
Long Mode
|
3
|
PWT
|
Page-level Write-Through
|
(Not used)
|
(Not used if bit 17 of CR4 is 1)
|
4
|
PCD
|
Page-level Cache Disable
|
(Not used)
|
(Not used if bit 17 of CR4 is 1)
|
12-31 (63)
|
PDBR
|
Page Directory Base Register
|
Base of PDPT
|
Base of PML4T/PML5T
|
假定物理基址的位0-11为0。 CR3的位3和4仅在没有PAE的情况下访问32位分页中的PDE时使用。
CR4
Bit
|
Label
|
描述
|
0
|
VME
|
Virtual 8086 Mode Extensions 虚拟8086模式扩展
|
1
|
PVI
|
Protected-mode Virtual Interrupts 保护模式虚拟中断
|
2
|
TSD
|
Time Stamp Disable 时间戳禁用
|
3
|
DE
|
Debugging Extensions 调试扩展
|
4
|
PSE
|
Page Size Extension 页面大小扩展
|
5
|
PAE
|
Physical Address Extension 物理地址扩展
|
6
|
MCE
|
Machine Check Exception 机器检查异常
|
7
|
PGE
|
Page Global Enabled 页面全局启用
|
8
|
PCE
|
Performance-Monitoring Counter enable 性能-监控计数器启用
|
9
|
OSFXSR
|
Operating system support for FXSAVE and FXRSTOR instructions 操作系统对FXSAVE和FXRSTOR指令的支持
|
10
|
OSXMMEXCPT
|
Operating System Support for Unmasked SIMD Floating-Point Exceptions 操作系统对未屏蔽的SIMD浮点异常的支持
|
11
|
UMIP
|
User-Mode Instruction Prevention (if set, #GP on SGDT, SIDT, SLDT, SMSW, and STR instructions when CPL > 0)
|
13
|
VMXE
|
Virtual Machine Extensions Enable 虚拟机扩展启用
|
14
|
SMXE
|
Safer Mode Extensions Enable
|
16
|
FSGSBASE
|
Enables the instructions RDFSBASE, RDGSBASE, WRFSBASE, and WRGSBASE
|
17
|
PCIDE
|
PCID Enable
|
18
|
OSXSAVE
|
XSAVE and Processor Extended States Enable
|
20
|
SMEP
|
Supervisor Mode Execution Protection Enable
|
21
|
SMAP
|
Supervisor Mode Access Prevention Enable
|
22
|
PKE
|
Protection Key Enable
|
23
|
CET
|
Control-flow Enforcement Technology
|
24
|
PKS
|
Enable Protection Keys for Supervisor-Mode Pages
|
CR5 - CR7
保留,与cr1相同的情况。
CR8
Bit
|
Label
|
描述
|
0-3
|
TPL
|
Task Priority Level 任务优先级别
|
Extended Control Registers 扩展控制寄存器
XCR0
Bit
|
Label
|
Description
|
0
|
X87
|
x87 FPU/MMX support (must be 1)
|
1
|
SSE
|
XSAVE support for MXCSR and XMM registers
|
2
|
AVX
|
AVX enabled and XSAVE support for upper halves of YMM registers
|
3
|
BNDREG
|
MPX enabled and XSAVE support for BND0-BND3 registers
|
4
|
BNDCSR
|
MPX enabled and XSAVE support for BNDCFGU and BNDSTATUS registers
|
5
|
opmask
|
AVX-512 enabled and XSAVE support for opmask registers k0-k7
|
6
|
ZMM_Hi256
|
AVX-512 enabled and XSAVE support for upper halves of lower ZMM registers
|
7
|
Hi16_ZMM
|
AVX-512 enabled and XSAVE support for upper ZMM registers
|
9
|
PKRU
|
XSAVE support for PKRU register
|
XCR0 can only be accessed if bit 18 of CR4 is set to 1. XGETBV and XSETBV instructions are used to access XCR0.
Debug Registers 调试寄存器
DR0 - DR3
包含最多4个断点的线性地址。 如果启用了分页,则将它们转换为物理地址。
DR6
它允许调试器确定发生了哪些调试条件。
位0到3表示,在设置时,当生成调试异常时,它的相关断点条件已满足。
位13指示指令流中的下一个指令访问调试寄存器之一。
位14指示 (设置时) 调试异常是由单步执行模式触发的 (在eglags中使用TF位启用)。
位15指示 (设置时) 调试指令是由任务切换产生的,其中设置了目标任务的TSS中的T标志。
位16指示 (清除时) 调试异常或断点异常发生在RTM区域内。
DR7
Bit
|
Description
|
0
|
Local DR0 breakpoint
|
1
|
Global DR0 breakpoint
|
2
|
Local DR1 breakpoint
|
3
|
Global DR1 breakpoint
|
4
|
Local DR2 breakpoint
|
5
|
Global DR2 breakpoint
|
6
|
Local DR3 breakpoint
|
7
|
Global DR3 breakpoint
|
16-17
|
Conditions for DR0
|
18-19
|
Size of DR0 breakpoint
|
20-21
|
Conditions for DR1
|
22-23
|
Size of DR1 breakpoint
|
24-25
|
Conditions for DR2
|
26-27
|
Size of DR2 breakpoint
|
28-29
|
Conditions for DR3
|
30-31
|
Size of DR3 breakpoint
|
在硬件任务交换机上,本地断点位会停用,而全局则不会。
条件00b表示执行中断,01b表示写观察点,11b表示R/W观察点。 10b保留用于I/O R/W (不支持)。
Test Registers 测试寄存器
Name
|
描述
|
TR3 - TR5
|
无文档
|
TR6
|
Test command register 测试命令寄存器
|
TR7
|
Test data register 测试数据寄存器
|
Protected Mode Registers 保护模式寄存器
GDTR
Nits
|
Label
|
描述
|
0-15
|
Limit
|
(Size of GDT) - 1
|
16-47
|
Base
|
GDT 的起始地址
|
存储 GDT 的分段选择器。
LDTR
Bits
|
Label
|
描述
|
0-15
|
Limit
|
(Size of LDT) - 1
|
16-47
|
Base
|
LDT 的起始地址
|
存储 LDT 的分段选择器。
IDTR
Bits
|
Label
|
描述
|
0-15
|
Limit
|
(Size of IDT) - 1
|
16-47
|
Base
|
IDT 的起始地址
|
存储 IDT 的分段选择器。