寄存器¶
处理器内部包含的存储器,叫做寄存器。
访问快,数量少
寄存器分类¶
- 通用数据寄存器
- 段寄存器
- 指令寄存器
- 浮点数寄存器
- 控制寄存器
- 调试寄存器
16位寄存器示意图¶

当寄存器扩充到32bit时,部分寄存器名字前会加e,例如:eax,ebx,
当寄存器扩充到64bit时,部分寄存器名字前会加r,例如:rax,rbx
通用寄存器¶
主要用来零时保存操作数和运算结果等信息
| 寄存器 | 全名 | 作用 |
|---|---|---|
| AX | 累加(Accumulator)寄存器 | 累加器可用于乘、除、输入/输出等操作 |
| BX | 基地址寄存器(Base Register) | 也可作为存储器指针来使用 |
| CX | 计数寄存器(Count Register) | 在循环和字符串操作时,要用它来控制循环次数 在位操作中,当移多位时,要用CL来指明移位的位数 |
| DX | 数据寄存器(Data Register) | 在进行乘、除运算时,它可作为默认的操作数参与运算 也可用于存放I/O的端口地址 |
| SI | source Index Register | 字符串操作的源指针 |
| DI | destination Index Register | 字符串操作的目的指针 |
| BP | 基址寄存器(Base Pointer Register) | 堆栈数据指针 |
| SP | 栈指针(Stack Pointer Register) | 指向堆栈的栈顶 |
段寄存器¶
段寄存器是根据内存分段的管理模式而设置的。
内存单元的逻辑地址由段寄存器和一个偏移量组合而成的
| 缩写 | 全名 | 作用 |
|---|---|---|
| CS | 代码段寄存器(Code Segment Register) | 其值为代码段的段值 |
| DS | 数据段寄存器(Data Segment Register) | 其值为数据段的段值 |
| SS | 堆栈段寄存器(Stack Segment Register) | 其值为堆栈段的段值 |
| ES/FS/GS | 附加段寄存器(Extra Segment Register) | 其值为附加数据段的段值 |
系统地址段寄存器¶
| 缩写 | 全名 | 描述 |
|---|---|---|
| GDTR | 全局描述符表寄存器GDTR(Global Descriptor Table Register ) | 是48位寄存器,用来保存全局描述符表(GDT)的32位基地址和16为GDT的界限 |
| IDTR | 中断描述符表寄存器IDTR(Interrupt Descriptor Table Register) | 是48位寄存器,用来保存中断描述符表(IDT)的32位基地址和16为IDT的界限 |
| LDTR | 局部描述符表寄存器LDTR(Local Descriptor Table Register ) | 是16位寄存器,保存局部描述符表LDT段的选择符。 |
| TR | 任务状态寄存器TR(Task State Register) | 是16位寄存器,用于保存任务状态段TSS段的16位选择符。 |

详细放到寻址里介绍。
指令指针寄存器¶
| 名字 | 作用 | |
|---|---|---|
| IP | (Instruction Pointer) | 存放下次将要执行的指令在代码段的偏移量 |
控制寄存器¶
确定处理器操作模式

| 控制寄存器 | 描述 |
|---|---|
| cr0 | 控制操作模式和处理器状态的系统标志 |
| cr1 | 当前未使用 |
| cr2 | 内存页面错误信息 |
| cr3 | 内存页面目录信息 |
| cr4 | 支持处理器特性和说明处理器特定能力的标志 |
可以用过通用通用数据寄存器查看或修改控制寄存器的值。
标志¶
16位标志寄存器示意图:

状态标志¶
| 标志 | 名称 | 第几位 | 说明 |
|---|---|---|---|
| CF | 进位标志 | 0 | 数学运算进位或借位 |
| PF | 奇偶校验标志 | 2 | 运算结果寄存器中1的个数,偶数个置1,奇数个置0 |
| AF | 加法进位标志 | 4 | 运算进位或借位 |
| ZF | 零值标志 | 6 | 运算结果的值是否为0 |
| SF | 符号标志 | 7 | 运算结果是否为负数 |
| OF | 溢出标志 | 11 | 运算结果是否溢出 |
控制标志¶
| 标志 | 名称 | 第几位 | 说明 |
|---|---|---|---|
| TF | 陷阱标志 | 8 | 设置为1启动单步模式 |
| IF | 中断使能标志 | 9 | 是否处理外部收到的终端信号 |
| IOPL | IO特权级别标志 | 12,13 | 表明当前运行任务的IO特权等级 |
| NT | 嵌套任务标志 | 14 | 当前任务是否链接到前一个任务 |
| RF | 恢复标志 | 16 | 调试模式如何响应异常 |
| VM | 虚拟8086模式标志 | 17 | 表明处理器在虚拟8086模式 |
| AC | 对准检测标志 | 18 | 启用内存引用的对准检查 |
| VIF | 虚拟中断标志 | 19 | 虚拟模式中同IF |
| VIP | 虚拟终端挂起标志 | 20 | 虚拟模式中表示一个中断被挂起 |
| ID | 识别标志 | 21 | 是否支持CPUID指令 |
浮点数寄存器¶
FPU¶
floating-point unit
暂时不关注,略...
多媒体扩展¶
MMX¶
multimedia extension
暂时不关注,略...