常见的寄存器

这篇具有很好参考价值的文章主要介绍了常见的寄存器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、常见寄存器的分类

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)文章来源地址https://www.toymoban.com/news/detail-468095.html

到了这里,关于常见的寄存器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 常见的寄存器

    一、 常见寄存器的分类 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位通用寄存器有具体名称,

    2024年02月07日
    浏览(43)
  • Modbus寄存器分类及地址分配

           Modbus协议中一个重要的概念是寄存器,所有的数据均存放于寄存器中。最初Modbus协议借鉴了PLC中寄存器的含义,但是随着Modbus协议的广泛应用,寄存器的概念进一步泛化,不再是指具体的物理寄存器,也可能是一块内存区域。Modbus寄存器根据存放的数据类型以及各自

    2024年02月11日
    浏览(41)
  • 【单周期CPU】LoongArch | 32位寄存器DR | 32位的程序计数器PC | 通用寄存器堆Registers | 32位RAM存储器

    前言: 本章内容主要是演示在vivado下利用Verilog语言进行单周期简易CPU的设计。一步一步自己实现模型机的设计。本章先介绍单周期简易CPU中基本时序逻辑部件设计。 💻环境:一台内存4GB以上,装有64位Windows操作系统和Vivado 2017.4以上版本软件的PC机。 💎本章所采用的指令为

    2024年02月12日
    浏览(45)
  • 嵌入式中详解 ARM 几个常见的寄存器方法

    大家好,今天来聊聊对于ARM几个特殊寄存器的理解,FP、SP和LR。 1、介绍 FP:栈顶指针,指向一个栈帧的顶部,当函数发生跳转时,会记录当时的栈的起始位置。 SP:栈指针(也称为栈底指针),指向栈当前的位置, LR:链接寄存器,保存函数返回的地址。 关于gcc就有一个关

    2024年02月20日
    浏览(40)
  • stm32的BRR寄存器和BSRR寄存器

    1、BRR---   bit   RESET(置0)  register   //高16位无,低16位置1为0,不能写1 2 、BSRR---   bit   SET(设置1或0)       register   //低16位设置1为0 BSRR:用于低16位的作用是让指定的IO口置1;而高16位的作用是让指定的IO口置0。  

    2024年02月11日
    浏览(44)
  • 寄存器内存读写指令(二) —— 多寄存器读写 LDM / STM

    有的时候,CPU可能会遇到 a++; b++; c++,这个时候为了提升效率,CPU可能会一次将多个寄存器里的变量保存到内存中。这个时候之前介绍的 LDR / STR 指令虽然也能实现,但只能操作一个寄存器的读写。 因此,考虑到这点,下面介绍多个寄存器的读写指令 将 多个寄存器 的数据写

    2024年02月07日
    浏览(58)
  • 锁存器、D触发器、寄存器理解

    1、锁存器        锁存器对脉冲的电平敏感,也就是电平触发,在有效的电平下,锁存器处于使能状态,输出随着输入发生变化,此时它不锁存信号,就像一个缓冲器一样;在锁存器没有使能时,则数据被锁住,输入信号不起作用,此时输出一直为锁存的状态信息(锁存最后

    2024年02月09日
    浏览(41)
  • FPGA之 寄存器、触发器、锁存器

    每个slice有8个存储元素,每个存储元素如下图所示:  其中四个为DFF/LATCH,可以配置为边沿触发D型触发器或电平敏感锁存器输入上图。D输入可以通过AFFMUX, BFFMUX, CFFMUX或DFFMUX的LUT输出直接驱动,也可以通过AX, BX, CX或DX输入绕过函数发生器的 BYPASS slice输入直接驱动。当配置为锁存

    2024年01月18日
    浏览(52)
  • Arm汇编---寄存器

    寄存器:r0~r15, sp, lr, sb, sl, fp, ip, pc 条件码:eq, ne, hs, lo, mi, pl, vs, vc, hi, ls, ge, lt, gt, le, al ------------------------------------------ 一、数据寄存器 --------------------------------------------- ------------------------------------------ 二、指针寄存器 --------------------------------------------- --------------------

    2024年02月02日
    浏览(44)
  • ARM寄存器组

    CM3 拥有通用寄存器 R0‐R15 以及一些特殊功能寄存器。 R0-R7也被称为低组寄存器,所有指令可以访问它们,它们的字长为32位,复位后的初始值是不可预料的。 R8-R12也被称为高组寄存器,所有指令可以访问它们,它们的字长为32位,复位后的初始值是不可预料的。 R13寄存器中

    2024年02月10日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包