寄存器用途和英文全称

寄存器用途和英文全称寄存器类别和用途基本程序执行寄存器 basicprogram 8 个通用寄存器 6 个段寄存器 一个处理器状态标志寄存器 EFLAGS 和一个指令指针寄存器 EIP EAX AX AH 和 AL 一些寄存器的组成部分可以处理 8 位的值 例如 AX 寄存器的高 8 位被称为 AH 而低 8 位被称为 AL 同样的重叠关系也存在于 EAX EBX ECX 和 EDX 寄存器中 32 位 16 位 8 位 高 8 位 低

寄存器类别和用途

基本程序执行寄存器(basic program execution registers)。8 个通用寄存器,6 个段寄存器,一个处理器状态标志寄存器(EFLAGS),和一 个指令指针寄存器(EIP)。

寄存器用途和英文全称

EAX、AX、AH和AL

寄存器用途和英文全称

一些寄存器的组成部分可以处理 8 位的值。例如,AX 寄存器的高 8 位被称为 AH,而低 8 位被称为 AL。同样的重叠关系也存在于 EAX、EBX、ECX 和 EDX 寄存器中:

32 位 16 位 8 位(高) 8 位(低)
EAX AX AH AL
EBX BX BH BL
ECX CX CH CL
EDX DX DH DL

其他通用寄存器只能用 32 位或 16 位名称来访问,如下表所示:

32 位 16 位 32 位 16 位
ESI SI EBP BP
EDI DI ESP SP

通用寄存器有特殊用法:

  • 乘除指令默认使用EAX。它常常被称为扩展累加器(extended accumulator)寄存器。
  • CPU 默认使用 ECX 为循环计数器。
  • ESP 用于寻址堆栈数据。它极少用于一般算术运算和数据传输,通常被称为扩展堆栈指针(extended stack pointer)寄存器。
  • ESI 和 EDI 用于高速存储器传输指令,有时也被称为扩展源变址(extended source index)寄存器和扩展目的变址(extended destination index)寄存器。
  • 高级语言通过 EBP 来引用堆栈中的函数参数和局部变量。除了高级编程,它不用于一般算术运算和数据传输。它常常被称为扩展帧指针(extended frame pointer)寄存器。

指令指针

指令指针(EIP)寄存器中包含下一条将要执行指令的地址。某些机器指令能控制 EIP,使得程序分支转向到一个新位置。call和ret会改变其值。

状态标志位

状态标志位反映了 CPU 执行的算术和逻辑操作的结果。其中包括:溢出位、符号位、零标志位、辅助进位标志位、奇偶校验位和进位标志位。下述说明中,标志位的缩写紧跟在标志位名称之后:

  • 进位标志位(CF),与目标位置相比,无符号算术运算结果太大时,设置该标志位。
  • 溢出标志位(OF),与目标位置相比,有符号算术运算结果太大或太小时,设置该标志位。
  • 符号标志位(SF),算术或逻辑操作产生负结果时,设置该标志位。
  • 零标志位(ZF),算术或逻辑操作产生的结果为零时,设置该标志位。
  • 辅助进位标志位(AC),算术操作在 8 位操作数中产生了位 3 向位 4 的进位时,设置该标志位。
  • 奇偶校验标志位(PF),结果的最低有效字节包含偶数个 1 时,设置该标志位,否则,清除该标志位。一般情况下,如果数据有可能被修改或损坏时,该标志位用于进行 错误检测。

通用寄存器:

英文 功能 寄存器 编号(二进制) 编号(十进制) 字母 全称 功能    
    32位 16位 8位     D double
accumulator 累加 EAX AX AL 000 0 L low 低位
count 计数 ECX CX CL 001 1 H high 高位
data 数据 EDX DX DL 010 2 E extend 扩展
base 基址 EBX BX BL 011 3 R register 寄存器
Stack Pointer 堆栈指针 ESP SP AH 100 4 I immediate 立即数
Base Pointer 基址指针 EBP BP CH 101 5 M memory 内存
Source Index 源变址 ESI SI DH 110 6 B byte 字节
Destination Index 目的变址 EDI DI BH 111 7 W word

标志寄存器(FLAG/16位):

英文 功能 全称 标志形式
OF 溢出标志 overflow flag 状态标志
SF 符号标志 sign  flag 状态标志
ZF 零标志 zero  flag 状态标志
CF 进位标志 carry  flag 状态标志
AF 辅助进位标志 auxiliary carry flag 状态标志
PF 奇偶标志 parity flag 状态标志
DF 方向标志 direction flag 控制标志
IF 中断标志 interrupt flag 控制标志
TF 陷进标志 trap     flag 控制标志

段寄存器(16位):

英文 含义 全称 功能
CS 代码段 Code Segment 指明代码段的起始地址
DS 数据段 Data Segment 指明数据段的起始地址
SS 堆栈段 Stack Segment 指明堆栈段的起始地址
ES 附加段 Extra Segment 指明附加段的起始地址

指令指针寄存器(32位)EIP:Extend Instruction Pointer

检查算术运算结果使用的是 CPU 状态标志位的值,同时,这些值还可以触发条件分支指令,即基本的程序逻辑工具。下面是对状态标志位的简要概述:

  • 进位标志位意味着无符号整数溢出。比如,如果指令目的操作数为 8 位,而指令产生的结果大于二进制的 1111 1111,那么进位标志位置 1。
  • 溢出标志位意味着有符号整数溢出。比如,指令目的操作数为 16 位,但其产生的负数结果小于十进制的 -32 768,那么溢出标志位置 1。
  • 零标志位意味着操作结果为 0。比如,如果两个值相等的操作数相减,则零标志位置 1。
  • 符号标志位意味着操作产生的结果为负数。如果目的操作数的最高有效位(MSE)置 1,则符号标志位置 1。
  • 奇偶标志位是指,在一条算术或布尔运算指令执行后,立即判断目的操作数最低有效字节中 1 的个数是否为偶数。
  • 辅助进位标志位置 1,意味着目的操作数最低有效字节中位 3 有进位。

参考:

https://www.cnblogs.com/forestsky/p/10927470.html

http://c.biancheng.net/view/3458.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220972.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:13
下一篇 2026年3月17日 下午7:13


相关推荐

  • FARPOINT 常见用法

    FARPOINT 常见用法1 AllowCellOve 获取或设置单元格里的内容超出时 是否放在邻近的单元格 2 AllowColumnM 获取或设置是否可以移动列 3 AllowDragDro 获取或设置是否可以拖动选定的对象 如行 单元格 选择的区域 里面的值也会跟着变化 4

    2026年3月19日
    2
  • js 正则替换换行符

    js 正则替换换行符vardiv=document.getElementById(‘div’);vars=div.innerHTML.replace(/(\n|\r|(\r\n)|(\u0085)|(\u2028)|(\u2029))/g,””);//g的意思是:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。//取消了空格之后在做其他的替换才可以,否则不能替换

    2022年5月24日
    142
  • Python wxPython基本教程「建议收藏」

    Python wxPython基本教程「建议收藏」PythonwxPython在资源上比较小,而且官方文档也不好找,wxPython在python2.x和python3.x安装上有区别:以下为python3.x安装为例:1.网上下载whl文件安装:路径:https://wxpython.org/Phoenix/snapshot-builds/文件名解释:wxPython_Phoenix-3.0.3.dev2812+b3485d4-c…

    2022年5月21日
    34
  • 在线词云制作tagxedo

    在线词云制作tagxedo最近在用 python 制作词云的时候发现了一个更加方便快捷很好玩的词云制作网站 http www tagxedo com app html 所以今天就来大致介绍下是怎么使用的 1 先来介绍下 tagxedo 的作用 借用官网的说法 Tagxedo 是一款可以自定义云的外形的文字云在线生成工具 可以把人物头像用单词或者文字来制作成词图样式 因为它不仅完美地支持中文 而且制作方法简单 易

    2026年3月19日
    2
  • pycharm 配置 git 方法[通俗易懂]

    pycharm 配置 git 方法[通俗易懂]1.打开pycharm,点击file——Default-setting——versioncontrol2.配置github账号密码3.PathtoGitexecutable中填写git路径转载于:https://www.cnblogs.com/tzxy/p/11148705.html…

    2025年7月10日
    3
  • 解决ubuntu16.04中codeblocks中文显示不全的问题[通俗易懂]

    解决ubuntu16.04中codeblocks中文显示不全的问题[通俗易懂]ubuntu16.04中安装中文库、中文输入法、搜狗输入法、解决终端无法显示中文的问题、安装字体(YaheiConsolas字体)、更换漂亮绚丽flatbulous主题。codeblock设置字体为:kacstdigital或centuryschoolbookl解决中文注释显示不全的问题,修改codeblocks丑陋的运行窗口为ubuntu16.04默认的终端。

    2022年7月26日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号