微机原理笔记——寄存器

寄存器

1.通用寄存器

定义

通用寄存器也叫做多功能寄存器,可分为通用数据寄存器,指针寄存器和变址寄存器

说明

在这里插入图片描述

1.通用数据寄存器可以作为32位(EAX,EBX,ECX,EDX),16位(AX,BX,CX,DX),8位(AH AL,BH BL,CH,CL,DH DL)

如果作为8位或者16位时,只改变32位寄存器的一部分,不会对其他部分进行修改

2.变址寄存器可作为32位(ESP,EBP,ESI,ESD),也可作为16位(SP,BP,SI,SD)

ESP和EBP用于堆栈操作,ESI,EDI用于串操作

变址寄存器也可作为数据寄存器使用

通用数据寄存器

1 EAX(Accumulate,累加器)

2 EBX(Base,基址) EBX主要用于存放存储单元的偏移地址

3 ECX(Count,计数) ECX可以多种指令的计数值

用于计数的指令有:重复的串操作指令,移位指令,循环移位指令,LOOP/LOOPD指令

移位和循环移位指令用CL计数

串指令操作用CX计数

LOOP/LOOPD指令用CX或者ECX计数

4 EDX(Data,数据),用于保存乘法运算产生的部分积,或者除法运算中的部分被除数

指针寄存器和变址寄存器

1 ESP(Stack Pointer,堆栈指针) ESP寻址一个叫做堆栈的存储区,通过这个指针存取堆栈存储器的数据

2 EBP(Base Pointer,基址指针) EBP用来存放访问堆栈段的一个数据区的基地址

3 ESI(Source Index,源变址) ESI用于寻找串操作指令的源字符串

4 EDI(Destination Index,目的变址) EDI用于串操作指令的目的字符串

2.指令指针寄存器EIP

定义

EIP是一个专用寄存器,用于寻址当前需要取出的指令字节,当CPU从内存中取出一个指令字节后,EIP的值自动加1,指向下一个指令字节。

注意

程序员不可对EIP/IP的值进行存取操作,程序中的转移指令,返回指令,中断处理指令可对EIP/IP进行操作

3.标志寄存器EFLAGS

定义

EFLAGS用于指示微处理器的状态并控制他的操作

分类

状态标志:
1.进位标志CF(Carry Flag)

运算过程中最高位有借位或者进位时,CF为1,否则为0

2.奇偶标志PF(Parity Flag)

该标志位反映了运算结果中低8位中1的个数,若为偶数则为,否则为0

3.辅助进位标志 AF(Auxiliary Flag)

若运算中低4位中的最高位有进位或者借位,AF为1,否则为0

AF一般用于BCD运算时是否要进行十进制调位的依据

4.零标志ZF(Zero Flag)

反映运算结果是否为0,若结果为0,则ZF为1,否则为0

5.符号标志位SF(Sign Flag)

用来记录运算结果的符号,若结果为负,则SF为1,否则为0

6.溢出标志OF(Overflow Flag)

反映有符号数运算结果是否发生溢出,若发生溢出,则OF为1,否则为0

OF=最高位进位^次高位进位

控制标志
1.方向标志DF(Direction Flag)

用来控制串指令操作的执行,若DF=1,则串指令的传送方向是从低地址到高地址的方向进行,若DF=0,则串指令的传送方向是从高地址到低地址

2.中断标志IF(Interrupt Flag)

可屏蔽中断标志,若IF=1,CPU响应外部可屏蔽中断,若IF=1,CPU不响应外部可屏蔽中断

3.陷阱标志TF(Trap Flag)

当TF=1,CPU处于单步方式,当TF=0,CPU处于连续方式

单步方式常用于程序的调试

4.段寄存器

代码段寄存器CS(Code Segment)

代码段是一个存储区域,用来保存微处理器使用的程序代码,代码段寄存器CS定义代码段的起始地址

数据段寄存器DS(Data Segment)

数据段包含了程序使用的大部分数据的存取区,数据段寄存器DS定义数据段的起始地址

附加段寄存器EX(Extra Segment)

附加段是为某些串操作指令存放目的操作数而附加的一个数据段,附加段寄存器EX定义附加段的起始地址

堆栈段寄存器SS(Stack Segment)

堆栈用来暂时存放程序运行中的一些数据和地址信息,堆栈寄存器SS定义堆栈段的首地址

通过堆栈段寄存器SS和堆栈指针寄存器ESP/SP可以访问堆栈栈顶的数据

通过堆栈段寄存器SS和基址指针寄存器EBP/BP可以寻址堆栈栈顶下方的数据

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值