<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=CPU_Registers_x86-64</id>
	<title>CPU Registers x86-64 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=CPU_Registers_x86-64"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=CPU_Registers_x86-64&amp;action=history"/>
	<updated>2026-04-05T23:06:07Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=CPU_Registers_x86-64&amp;diff=1008&amp;oldid=prev</id>
		<title>Zhang3：/* RFLAGS寄存器 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=CPU_Registers_x86-64&amp;diff=1008&amp;oldid=prev"/>
		<updated>2022-03-24T02:16:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;RFLAGS寄存器&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2022年3月24日 (四) 02:16的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l187&quot;&gt;第187行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第187行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==RFLAGS寄存器==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==RFLAGS寄存器==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;（译者注：在x64架构下，原来的eflags寄存器升级成了64位的rflags）&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=CPU_Registers_x86-64&amp;diff=996&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“Category:CPU_Registers  {{Disputed|Talk:CPU_Registers_x86-64}}  == 通用寄存器 ==  {| class=&quot;wikitable&quot; border=&quot;1&quot; |- ! colspan=5 | 名称（Monikers） ! rowspan=2 | 描述 |- ! 64-bit ! 32-bit ! 16-bit ! 低16位中的8高位 ! 8-bit |- | RAX | EAX | AX | AH | AL | 累加器(Accumulator) |- | RBX | EBX | BX | BH | BL | 基址(Base) |- | RCX | ECX | CX | CH | CL | 计数器(Counter) |- | RDX | EDX | DX | DH | DL | 数据（Data - 通常用于扩展A寄…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=CPU_Registers_x86-64&amp;diff=996&amp;oldid=prev"/>
		<updated>2022-03-23T11:31:44Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“&lt;a href=&quot;/index.php?title=%E5%88%86%E7%B1%BB:CPU_Registers&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;分类:CPU Registers（页面不存在）&quot;&gt;Category:CPU_Registers&lt;/a&gt;  {{Disputed|Talk:CPU_Registers_x86-64}}  == 通用寄存器 ==  {| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; |- ! colspan=5 | 名称（Monikers） ! rowspan=2 | 描述 |- ! 64-bit ! 32-bit ! 16-bit ! 低16位中的8高位 ! 8-bit |- | RAX | EAX | AX | AH | AL | 累加器(Accumulator) |- | RBX | EBX | BX | BH | BL | 基址(Base) |- | RCX | ECX | CX | CH | CL | 计数器(Counter) |- | RDX | EDX | DX | DH | DL | 数据（Data - 通常用于扩展A寄…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:CPU_Registers]]&lt;br /&gt;
&lt;br /&gt;
{{Disputed|Talk:CPU_Registers_x86-64}}&lt;br /&gt;
&lt;br /&gt;
== 通用寄存器 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=5 | 名称（Monikers）&lt;br /&gt;
! rowspan=2 | 描述&lt;br /&gt;
|-&lt;br /&gt;
! 64-bit&lt;br /&gt;
! 32-bit&lt;br /&gt;
! 16-bit&lt;br /&gt;
! 低16位中的8高位&lt;br /&gt;
! 8-bit&lt;br /&gt;
|-&lt;br /&gt;
| RAX&lt;br /&gt;
| EAX&lt;br /&gt;
| AX&lt;br /&gt;
| AH&lt;br /&gt;
| AL&lt;br /&gt;
| 累加器(Accumulator)&lt;br /&gt;
|-&lt;br /&gt;
| RBX&lt;br /&gt;
| EBX&lt;br /&gt;
| BX&lt;br /&gt;
| BH&lt;br /&gt;
| BL&lt;br /&gt;
| 基址(Base)&lt;br /&gt;
|-&lt;br /&gt;
| RCX&lt;br /&gt;
| ECX&lt;br /&gt;
| CX&lt;br /&gt;
| CH&lt;br /&gt;
| CL&lt;br /&gt;
| 计数器(Counter)&lt;br /&gt;
|-&lt;br /&gt;
| RDX&lt;br /&gt;
| EDX&lt;br /&gt;
| DX&lt;br /&gt;
| DH&lt;br /&gt;
| DL&lt;br /&gt;
| 数据（Data - 通常用于扩展A寄存器）&lt;br /&gt;
|-&lt;br /&gt;
| RSI&lt;br /&gt;
| ESI&lt;br /&gt;
| SI&lt;br /&gt;
| N/A&lt;br /&gt;
| SIL&lt;br /&gt;
| 字符串操作源索引(Source index for string operations)&lt;br /&gt;
|-&lt;br /&gt;
| RDI&lt;br /&gt;
| EDI&lt;br /&gt;
| DI&lt;br /&gt;
| N/A&lt;br /&gt;
| DIL&lt;br /&gt;
| 字符串操作的目标索引(Destination index for string operations)&lt;br /&gt;
|-&lt;br /&gt;
| RSP&lt;br /&gt;
| ESP&lt;br /&gt;
| SP&lt;br /&gt;
| N/A&lt;br /&gt;
| SPL&lt;br /&gt;
| 堆栈指针(Stack Pointer)&lt;br /&gt;
|-&lt;br /&gt;
| RBP&lt;br /&gt;
| EBP&lt;br /&gt;
| BP&lt;br /&gt;
| N/A&lt;br /&gt;
| BPL&lt;br /&gt;
| 基址指针(Base Pointer 用于堆栈帧)&lt;br /&gt;
|-&lt;br /&gt;
| R8&lt;br /&gt;
| R8D&lt;br /&gt;
| R8W&lt;br /&gt;
| N/A&lt;br /&gt;
| R8B&lt;br /&gt;
| 通用&lt;br /&gt;
|-&lt;br /&gt;
| R9&lt;br /&gt;
| R9D&lt;br /&gt;
| R9W&lt;br /&gt;
| N/A&lt;br /&gt;
| R9B&lt;br /&gt;
| 通用&lt;br /&gt;
|-&lt;br /&gt;
| R10&lt;br /&gt;
| R10D&lt;br /&gt;
| R10W&lt;br /&gt;
| N/A&lt;br /&gt;
| R10B&lt;br /&gt;
| 通用&lt;br /&gt;
|-&lt;br /&gt;
| R11&lt;br /&gt;
| R11D&lt;br /&gt;
| R11W&lt;br /&gt;
| N/A&lt;br /&gt;
| R11B&lt;br /&gt;
| 通用&lt;br /&gt;
|-&lt;br /&gt;
| R12&lt;br /&gt;
| R12D&lt;br /&gt;
| R12W&lt;br /&gt;
| N/A&lt;br /&gt;
| R12B&lt;br /&gt;
| 通用&lt;br /&gt;
|-&lt;br /&gt;
| R13&lt;br /&gt;
| R13D&lt;br /&gt;
| R13W&lt;br /&gt;
| N/A&lt;br /&gt;
| R13B&lt;br /&gt;
| 通用&lt;br /&gt;
|-&lt;br /&gt;
| R14&lt;br /&gt;
| R14D&lt;br /&gt;
| R14W&lt;br /&gt;
| N/A&lt;br /&gt;
| R14B&lt;br /&gt;
| 通用&lt;br /&gt;
|-&lt;br /&gt;
| R15&lt;br /&gt;
| R15D&lt;br /&gt;
| R15W&lt;br /&gt;
| N/A&lt;br /&gt;
| R15B&lt;br /&gt;
| 通用&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
注意：使用REX.W指令前缀（译者注：REX前缀是在64位模式下使用的指令前缀字节，是机器编码的一种扩展）时，不能访问''AH''、''BH''、''CH''和''DH''。&lt;br /&gt;
当操作数包含64位寄存器时，会添加此前缀 (由汇编器自动添加)。&lt;br /&gt;
&lt;br /&gt;
== 指针寄存器（Pointer Registers） ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 | 名称（Monikers）&lt;br /&gt;
! rowspan=2 | 描述&lt;br /&gt;
|-&lt;br /&gt;
! 64-bit&lt;br /&gt;
! 32-bit&lt;br /&gt;
! 16-bit&lt;br /&gt;
|-&lt;br /&gt;
| RIP&lt;br /&gt;
| EIP&lt;br /&gt;
| IP&lt;br /&gt;
| 指令指针(Instruction Pointer)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
注意: 指令指针只能在RIP-相对寻址（RIP-relative addressing）中使用，这是在长模式（long mode）中引入的。&lt;br /&gt;
&lt;br /&gt;
== 段寄存器（Segment Registers） ==&lt;br /&gt;
&lt;br /&gt;
所有这些都是16位长。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 名称（Monikers）&lt;br /&gt;
! 描述&lt;br /&gt;
|-&lt;br /&gt;
| CS&lt;br /&gt;
| 代码段(Code Segment)&lt;br /&gt;
|-&lt;br /&gt;
| DS&lt;br /&gt;
| 数据段(Data Segment)&lt;br /&gt;
|-&lt;br /&gt;
| SS&lt;br /&gt;
| 栈段(Stack Segment)&lt;br /&gt;
|-&lt;br /&gt;
| ES&lt;br /&gt;
| 额外段（Extra Segment 用于字符串操作）&lt;br /&gt;
|-&lt;br /&gt;
| FS&lt;br /&gt;
| 通用段&lt;br /&gt;
|-&lt;br /&gt;
| GS&lt;br /&gt;
| 通用段&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''CS''、''DS''、''ES''和''SS''的段被视为基址为0，无论GDT中的段描述符如何表示。&lt;br /&gt;
例外是''FS''和''GS''，它们有MSR来更改它们的基址。&lt;br /&gt;
&lt;br /&gt;
所有段的限制检查均被禁用。&lt;br /&gt;
&lt;br /&gt;
==RFLAGS寄存器==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 位&lt;br /&gt;
! 标记&lt;br /&gt;
! 描述&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| CF&lt;br /&gt;
| 进位标志(Carry Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| PF&lt;br /&gt;
| 奇偶校验标志(Parity Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| AF&lt;br /&gt;
| 辅助进位标志(Auxiliary Carry Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ZF&lt;br /&gt;
| 零标志（Zero Flag）&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| SF&lt;br /&gt;
| 符号标志(Sign Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| TF&lt;br /&gt;
| 陷阱标志(Trap Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| IF&lt;br /&gt;
| 中断启用标志(Interrupt Enable Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DF&lt;br /&gt;
| 方向标志(Direction Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| OF&lt;br /&gt;
| 溢出标志(Overflow Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 12-13&lt;br /&gt;
| IOPL&lt;br /&gt;
| I/O权限级别(I/O Privilege Level)&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| NT&lt;br /&gt;
| 嵌套任务(Nested Task)&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| RF&lt;br /&gt;
| 恢复标志(Resume Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| VM&lt;br /&gt;
| 虚拟8086模式(Virtual-8086 Mode)&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| AC&lt;br /&gt;
| 对齐检查/访问控制(Alignment Check / Access Control)&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| VIF&lt;br /&gt;
| 虚拟中断标志(Virtual Interrupt Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| VIP&lt;br /&gt;
| 虚拟中断待处理(Virtual Interrupt Pending)&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| ID&lt;br /&gt;
| 身份标志(ID Flag)&lt;br /&gt;
|-&lt;br /&gt;
| 22-63&lt;br /&gt;
| 0&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 控制寄存器（Control Registers） ==&lt;br /&gt;
&lt;br /&gt;
====CR0====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 位 (s)&lt;br /&gt;
! 标记&lt;br /&gt;
! 描述&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| PE&lt;br /&gt;
| 保护模式启用(Protected Mode Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| MP&lt;br /&gt;
| 监视器协处理器(Monitor Co-Processor)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| EM&lt;br /&gt;
| 仿真(Emulation)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| TS&lt;br /&gt;
| 任务切换(Task Switched)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| ET&lt;br /&gt;
| 扩展类型(Extension Type)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| NE&lt;br /&gt;
| 数值错误(Numeric Error)&lt;br /&gt;
|-&lt;br /&gt;
| 6-15&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| WP&lt;br /&gt;
| 写保护(Write Protect)&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| AM&lt;br /&gt;
| 对齐掩码(Alignment Mask)&lt;br /&gt;
|-&lt;br /&gt;
| 19-28&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| NW&lt;br /&gt;
| 非直写(Not-Write Through)&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| CD&lt;br /&gt;
| 缓存禁用(Cache Disable)&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG&lt;br /&gt;
| 分页(Paging)&lt;br /&gt;
|-&lt;br /&gt;
| 32-63&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
请注意，此寄存器是唯一可以通过两种方式写入和读取的控制寄存器，而其他方式只能通过MOV指令访问&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
;方式1：&lt;br /&gt;
;写入：&lt;br /&gt;
mov cr0,reg32(64)&lt;br /&gt;
;读取:&lt;br /&gt;
mov reg32(64),cr0 &lt;br /&gt;
;----------------------&lt;br /&gt;
;方式2：&lt;br /&gt;
;写入：&lt;br /&gt;
lmsw reg16(32/64) ; lms（w）中的“w”代表word（16位），但指令本身可以使用指令重写修改cr0的上48位。&lt;br /&gt;
&lt;br /&gt;
;读取:&lt;br /&gt;
smsw reg16(32/64) ; 同上&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====CR2====&lt;br /&gt;
&lt;br /&gt;
此控制寄存器包含触发页错误(page fault)的线性 (虚拟) 地址，可在页错误的中断处理程序中使用。&lt;br /&gt;
&lt;br /&gt;
====CR3====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 | 位&lt;br /&gt;
! 标记&lt;br /&gt;
! 描述&lt;br /&gt;
! 条件&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=4 | 0-11&lt;br /&gt;
| 0-2&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
| rowspan=4 | CR4.PCIDE = 0&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PWT&lt;br /&gt;
| 页面级直写(Page-Level Write Through)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PCD&lt;br /&gt;
| 关闭页级缓存(Page-Level Cache Disable)&lt;br /&gt;
|-&lt;br /&gt;
| 5-11&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 | 0-11&lt;br /&gt;
| colspan=2 | PCID&lt;br /&gt;
| CR4.PCIDE = 1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 | 12-63&lt;br /&gt;
| colspan=2 | PML4的物理基址(Page-Level Cache Disable)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
请注意，这必须与页面对齐&lt;br /&gt;
&lt;br /&gt;
====CR4====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!位 (s)&lt;br /&gt;
! 标记&lt;br /&gt;
! 描述&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| VME&lt;br /&gt;
| 虚拟8086模式扩展(Virtual-8086 Mode Extensions)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| PVI&lt;br /&gt;
| 保护模式虚拟中断(Protected Mode Virtual Interrupts)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| TSD&lt;br /&gt;
| 时间戳仅在环0中启用(Time Stamp enabled only in ring 0)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| DE&lt;br /&gt;
| 调试扩展(Debugging Extensions)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| PSE&lt;br /&gt;
| 页面大小扩展(Page Size Extension)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PAE&lt;br /&gt;
| 物理地址扩展(Physical Address Extension)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| MCE&lt;br /&gt;
| 机器检查异常(Machine Check Exception)&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PGE&lt;br /&gt;
| 页面全局启用(Page Global Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PCE&lt;br /&gt;
| 启用性能监控计数器(Performance Monitoring Counter Enable) &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| OSFXSR&lt;br /&gt;
| 操作系统对fxsave和fxrstor指令的支持&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| OSXMMEXCPT&lt;br /&gt;
| OS支持无掩码simd浮点异常&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| UMIP&lt;br /&gt;
| 用户模式指令保护(用户态关闭SGDT、SIDT、SLDT、SMSW、STR)&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| VMXE&lt;br /&gt;
| 虚拟机扩展支持(Virtual Machine Extensions Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| SMXE&lt;br /&gt;
| 启用安全模式扩展(Safer Mode Extensions Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| FSGSBASE&lt;br /&gt;
| Enables the instructions RDFSBASE, RDGSBASE, WRFSBASE, and WRGSBASE &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| PCIDE&lt;br /&gt;
| PCID启用&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| OSXSAVE&lt;br /&gt;
| XSAVE和处理器扩展状态启用&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| SMEP&lt;br /&gt;
| 监控模式执行保护启用(Supervisor Mode Executions Protection Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| SMAP&lt;br /&gt;
| 启用Supervisor模式访问保护(Supervisor Mode Access Protection Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PKE&lt;br /&gt;
| 为用户模式页面启用保护密钥&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| CET&lt;br /&gt;
| 启用控制流强制技术(Enable Control-flow Enforcement Technology)&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PKS&lt;br /&gt;
| 启用主管模式页面的保护密钥(Enable protection keys for supervisor-mode pages)&lt;br /&gt;
|-&lt;br /&gt;
| 25-63&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====CR8====&lt;br /&gt;
&lt;br /&gt;
CR8是一个新的寄存器，可在64位模式下使用REX前缀访问。 CR8用于确定外部[[interrupts|中断]]的优先级，称为任务优先级寄存器(TPR- task-priority register)。&lt;br /&gt;
&lt;br /&gt;
AMD64体系结构允许软件定义多达15个外部中断优先级类。 优先级等级从1到15进行编号，优先级等级1最低，优先级等级15最高。 CR8使用四个低序位来指定任务优先级，其余60位为保留位，必须用零写入。&lt;br /&gt;
&lt;br /&gt;
系统软件可以使用TPR寄存器来暂时阻止低优先级中断中断高优先级任务。 这是通过向TPR加载与要阻止的最高优先级中断相对应的值来实现的。 例如，加载值为9(1001b)的TPR会阻止优先级为9或更低的所有中断，同时允许识别优先级为10或更高的所有中断。 用0加载TPR启用所有外部中断。 用15（1111b）加载TPR将禁用所有外部中断。&lt;br /&gt;
&lt;br /&gt;
复位时，TPR清零。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!位&lt;br /&gt;
!意图&lt;br /&gt;
|-&lt;br /&gt;
|0-3&lt;br /&gt;
|优先级(Priority)&lt;br /&gt;
|-&lt;br /&gt;
|4-63&lt;br /&gt;
| 保留&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====CR1, CR5-7, CR9-15====&lt;br /&gt;
&lt;br /&gt;
保留，cpu在试图访问它们时会抛出#ud exeption。&lt;br /&gt;
&lt;br /&gt;
==MSRs==&lt;br /&gt;
&lt;br /&gt;
====IA32_EFER====&lt;br /&gt;
&lt;br /&gt;
扩展功能启用寄存器（EFER）是AMD K6处理器中添加的[[MSR|型号特定寄存器（model-specific register）]]，用于启用SYSCALL/SYSRET指令，以及稍后用于进入和退出[[x86-64|长模式]]。 该寄存器在 [[AMD64]] 中成为架构设计，并已被英特尔采用。 其MSR编号为0xC0000080。&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 位&lt;br /&gt;
! 标记&lt;br /&gt;
! 描述&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| SCE&lt;br /&gt;
| 系统调用扩展(System Call Extensions)&lt;br /&gt;
|-&lt;br /&gt;
| 1-7&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| LME&lt;br /&gt;
| 长模式启用(Long Mode Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| LMA&lt;br /&gt;
| 长模式激活(Long Mode Active)&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| NXE&lt;br /&gt;
| 否-启用执行(No-Execute Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| SVME&lt;br /&gt;
| 安全虚拟机启用(Secure Virtual Machine Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| LMSLE&lt;br /&gt;
| 长模式段限制启用(Long Mode Segment Limit Enable)&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| FFXSR&lt;br /&gt;
|快速 FXSAVE/FXRSTOR&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| TCE&lt;br /&gt;
| 转换缓存扩展(Translation Cache Extension)&lt;br /&gt;
|-&lt;br /&gt;
| 16-63&lt;br /&gt;
| 0&lt;br /&gt;
| 保留&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====FS.base, GS.base====&lt;br /&gt;
地址为0xC0000100(用于FS)和0xC0000101(用于GS)的MSR包含FS和GS段寄存器的基址。 这些通常用于用户代码中的线程指针和内核代码中的CPU本地指针。 可以安全地包含任何内容，因为使用段不会赋予用户代码额外的权限。&lt;br /&gt;
&lt;br /&gt;
在较新的CPU中，还可以在任何特权级别使用WRFSBASE和WRGSBASE指令写入这些指令。&lt;br /&gt;
&lt;br /&gt;
====KernelGSBase====&lt;br /&gt;
地址为0xC0000102的MSR。 基本上是在swapgs指令之后与GS.base交换的缓冲区。 通常用于分离GS寄存器的内核和用户使用。&lt;br /&gt;
&lt;br /&gt;
==调试寄存器（Debug Registers）==&lt;br /&gt;
&lt;br /&gt;
====DR0 - DR3====&lt;br /&gt;
&lt;br /&gt;
最多包含4个断点的线性地址。 如果启用了分页，则将它们转换为物理地址。&lt;br /&gt;
&lt;br /&gt;
====DR6====&lt;br /&gt;
&lt;br /&gt;
它允许调试器确定发生了哪些调试条件。 启用调试异常时，在进入调试异常处理程序之前设置低位0-3。&lt;br /&gt;
&lt;br /&gt;
====DR7====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 位&lt;br /&gt;
! 描述&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 本地DR0断点&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 全局DR0断点&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 本地DR1断点&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 全局DR1断点&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 本地DR2断点&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| 全局DR2断点&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 本地DR3断点&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 全局DR3断点&lt;br /&gt;
|-&lt;br /&gt;
| 16-17&lt;br /&gt;
| DR0的条件&lt;br /&gt;
|-&lt;br /&gt;
| 18-19&lt;br /&gt;
| DR0断点大小&lt;br /&gt;
|-&lt;br /&gt;
| 20-21&lt;br /&gt;
| DR1的条件&lt;br /&gt;
|-&lt;br /&gt;
| 22-23&lt;br /&gt;
|DR1断点的大小&lt;br /&gt;
|-&lt;br /&gt;
| 24-25&lt;br /&gt;
|适用于DR2的条件&lt;br /&gt;
|-&lt;br /&gt;
| 26-27&lt;br /&gt;
| DR2断点的大小&lt;br /&gt;
|-&lt;br /&gt;
| 28-29&lt;br /&gt;
|DR3的条件&lt;br /&gt;
|-&lt;br /&gt;
| 30-31&lt;br /&gt;
|DR3断点大小&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
硬件任务切换的本地断点位被停用，而全局则没有。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
00b条件表示执行中断，01b表示写入观察点（watchpoint），11b表示R/W观察点。10b是为I/O R/W保留的（不支持）。&lt;br /&gt;
&lt;br /&gt;
==测试寄存器（Test Registers）==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 名称&lt;br /&gt;
! 描述&lt;br /&gt;
|-&lt;br /&gt;
| TR3 - TR5&lt;br /&gt;
|无文档记录&lt;br /&gt;
|-&lt;br /&gt;
| TR6&lt;br /&gt;
| 测试命令寄存器（Test Command Register）&lt;br /&gt;
|-&lt;br /&gt;
| TR7&lt;br /&gt;
|测试数据寄存器（Test Data Register）&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保护模式寄存器（Protected Mode Registers）==&lt;br /&gt;
&lt;br /&gt;
====GDTR====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 | 操作数大小&lt;br /&gt;
! rowspan=2 | 标记&lt;br /&gt;
! rowspan=2 | 描述&lt;br /&gt;
|-&lt;br /&gt;
! 64-bit&lt;br /&gt;
! 32-bit&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;text-align:center&amp;quot; | Bits 0-15&lt;br /&gt;
| Limit&lt;br /&gt;
| [[GDT]]的大小&lt;br /&gt;
|-&lt;br /&gt;
| Bits 16-79&lt;br /&gt;
| Bits 16-47&lt;br /&gt;
| Base&lt;br /&gt;
| GDT的起始地址&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====LDTR====&lt;br /&gt;
&lt;br /&gt;
存储[[LDT]]的段选择器。&lt;br /&gt;
&lt;br /&gt;
====TR====&lt;br /&gt;
&lt;br /&gt;
存储 [[TSS]] 的分段选择器。&lt;br /&gt;
&lt;br /&gt;
====IDTR====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=2 |操作数大小&lt;br /&gt;
! rowspan=2 | 标记&lt;br /&gt;
! rowspan=2 | 描述&lt;br /&gt;
|-&lt;br /&gt;
! 64-bit&lt;br /&gt;
! 32-bit&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;text-align:center&amp;quot; | Bits 0-15&lt;br /&gt;
| Limit&lt;br /&gt;
| [[IDT]] 的大小&lt;br /&gt;
|-&lt;br /&gt;
| Bits 16-79&lt;br /&gt;
| Bits 16-47&lt;br /&gt;
| Base&lt;br /&gt;
| IDT的起始地址&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>