这些最常见的寄存器你了解过吗?

本文详细介绍了计算机中的寄存器分类及功能,包括通用寄存器、段寄存器、指令指针寄存器和标志寄存器。解析了EAX、EBX、ECX、EDX等通用寄存器在乘除运算、串操作等方面的作用。

一、常见寄存器的分类
1.通用寄存器(EAX EBX ECX EDX EBP ESP ESI EDI)
2.段寄存器(CS DS SS ES FS GS)
3.指令指针寄存器(EIP)
4.标志寄存器(EFLAGS)

二、通用寄存器
在这里插入图片描述
通用寄存器分为前加上字母E表示32位寄存器,普通的32位寄存器分为高16位和低16位,低16位通用寄存器有具体名称,分别叫做AX、BX、CX、DX、SI(源指针寄存器)、DI、(目的指针寄存器)、SP 、BP。
那么各种寄存器的作用分别是什么呢?这里简要介绍一下。
(一)数据寄存器(EAX EBX ECX EDX):
1.EAX——累加寄存器(Accumulator Register)
低16位(AX=AH&AL)
作用:实现乘除运算、中间结果缓存
2.EBX——基址寄存器(Base Register)
低16位(BX=BH&BL)
作用:存储器指针
3.ECX——计数寄存器(Count Register)
低16位(CX=CH&CL)
作用:实现循环控制、进行串操作
4.EDX——数据寄存器(Data Register)
低16位(DX=DH&DL)
作用:实现乘除运算、中间结果缓存(与EAX类似)
(二)变址寄存器和指针寄存器(ESI EDI EBP ESP)
1.ESI——源变址寄存器(Source Index Register)
低16位(SI)
作用:作为存储器指针、在串指令中作为源操作数指针
2.EDI——目的变址寄存器(Destination Index Register)
低16位(DI)
作用:作为存储器指针、在串指令中作为目的操作数指针
3.EBP——基址指针寄存器(Base Pointer Register)
低16位(BP)
作用:指向栈帧底部或栈底(栈帧底部和栈底是两个不同的概念)
4.ESP——堆栈指针寄存器(Stack Pointer Register)
低16位(SP)
作用:指向栈帧顶部或栈顶(栈帧顶部和栈顶是两个不同的概念)
(三)段寄存器(CS DS SS ES FS GS)
段寄存器作用——存储段地址
1.CS——代码段寄存器(Code Segment Register)
作用:存储代码段的段地址
2.DS——数据段寄存器(Data Segment Register)
作用:存储数据段的段地址
3.SS——堆栈段寄存器(Stack Segment Register)
作用:存储堆栈段的段地址
4.ES——附加段寄存器(Extra Segment Register)
作用:存储附加段的段地址
5.新增附加段寄存器:
FS——附加段寄存器(Extra Segment Register)
GS——附加段寄存器(Extra Segment Register)
(四)EIP——指令指针寄存器(Instruction Pointer Register)
1.内存中的地址表示
物理地址=段地址+偏移地址
段地址存储在段寄存器中、偏移地址是相对于段地址的偏移量。
EIP寄存器存放下一个机器指令的地址,指向下一条代码指令,并随程序的执行不断变化。
(五)EFLAGS——标志寄存器
1.CF——进位标志(Carry Flag)
2.PF——奇偶标志(Parity Flag)
3.AF——辅助进位标志(Auxiliary Carry Flag)
4.OF——溢出标志(Overflow Flag)
5.SF——符号标志(Sign Flag)
6.ZF——零标志(Zero Flag)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶叶扁舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值