x86架构寄存器介绍

x86架构寄存器介绍

x86寄存器分类:

类型寄存器
通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP
标志寄存器EFLAGS
段寄存器CS、DS、ES、FS、GS、SS
控制寄存器CR0、CR1、CR2、CR3、CR4
调试寄存器DR0、DR1、DR2、DR3、DR4、DR5、DR6、DR7
系统地址寄存器GDTR、IDTR、LDTR、TR

其它寄存器:EIP、TSC等

通用寄存器
寄存器说明
EAX累加器(Accumulator),低16为是AX,而AX又分为高8位AH和低8位AL(其余的通用寄存器类似)。EAX是很多加法乘法的缺省寄存器,存放函数的返回值。AX寄存器是算术运算的主要寄存器。
EBX基地址寄存器(Base Register),主要用于在内存寻址时存放基地址。
ECX计数寄存器(Count Register),在循环操作时用来控制循环次数。
EDX数据寄存器(Data Register),在进行乘、除运算时,作为默认的操作数参与运算,而且总是被用来放整数除法产生的余数,也可用于存放I/O的端口地址。
ESI/EDI源/目标索引寄存器(Source/Destination Index Register),主要用于存放存储单元在段内的偏移量。
EBP/ESP基址指针寄存器(Base Pointer Register)/堆栈指针寄存器(Stack Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可以实现多种存储器的操作数的寻址方式。
状态寄存器

EFLAGS状态寄存器包含了一系列的标志位用于提供程序的状态以及进行相应的控制。

标志位位置说明
CF0Carry flag:算术操作产生的结果在最高有效位发生进位时置为1,反之清零,指示无符号整形运算的溢出状态。
PF2Parity flag:算术操作产生的结果在最低有效字节包含偶数个1则置为1,反之清零。
AF4Adjust flag:算术操作的结果在第3位发生进位或借位则置为1,否则清零。
ZF6Zero flag:算术操作的结果为0则置为1,反之清零。
SF7Sign flag:算术操作结果作为有符号数的最高有效位,即正数置为0,负数置为1。
OF11Overflow flag:带符号整形运算溢出时置为1,反之清零,指示带符号整形运算溢出状态。
DF10Direction flag:设置串指令的处理方向,置为1则从高地址向低地址方向处理字符串,置为0则反之。
TF8Trap flag:置为1则允许单步调试。
IF9Interrupt enable flag:置为1允许响应中断,反之禁止响应中断。
IOPL12-13IO privilege level field:指示当前运行任务的IO特权级,正在运行任务的当前特权级必须小于或等于IO特权级才能访问IO地址空间。
NT14Nested task flag:若当前任务与前一个执行任务相关则置为1,反之清零。
RF16Resume flag:控制处理器对调试异常的响应。
VM17Virtual-8086 mode flag:置为1则允许虚拟8086模式,清零则返回保护模式。
AC18Alignment check flag:该标志与CR0寄存器中AM位置同时置为1时允许内存引用的对齐检查,两个标志不同时置1则禁用内存对齐检查。
VIF19Virtual interrupt flag:虚拟模式扩展标志位
VIP20Vritual interrupt pending flag:置为1指示一个中断正在被挂起。
ID21Identification flag:指示处理器对CPUID指令的支持。
段寄存器
段寄存器描述
CS保存代码段的段选择子,与EIP寄存器(存放要执行的下一条指令在代码段中的偏移量)一起构成代码的逻辑地址。CS寄存器不能由应用程序显式加载,而应该有操作系统以及处理器内部加载以改变程序的执行流。
DS保存当前程序模块的数据段的段选择子
ES保存当前程序模块辅助数据段的段选择子
FS保存由程序动态创建的数据段的段选择子
GS保存另一个程序共享出来的数据段的段选择子
SS保存栈段的段选择子。应用程序可以显式加载SS寄存器,以便创建多个栈段。
控制寄存器

CR0:

标志位位置描述
PE0Protection Enable:置为1时进入保护模式,清零时进入实模式。若PE和PG标志位同时置1,则开启分页模式,若仅PE标志位置1,则仅开启分段模式。
PG31Paging:置为1时开启分页模式,清零时禁用分页模式。开启分页模式之前必须先将PE标志位置为1。

CR1: 未定义的控制寄存器

CR2: 页故障线性地址寄存器,保存最后一次出现页故障的喜爱线性地址。

CR3: 保存页目录物理内存基地址。

系统地址寄存器
寄存器描述
GDTR全局描述符表寄存器:存放全局描述符表GDT的入口地址
LDTR局部描述符表寄存器:存放局部描述符表LDT的入口地址
IDTR中断描述符表寄存器:存放中断描述符表IDT的入口地址
TR任务状态段寄存器:存放当前任务的任务状态段的段选择子
其它寄存器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值