zoukankan      html  css  js  c++  java
  • 寄存器

    寄存器用途和英文全称

    32位

    寄存器类别和用途

    基本程序执行寄存器(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 为循环计数器
    • ESI 和 EDI 用于高速存储器传输指令,有时也被称为扩展源变址(extended source index)寄存器和扩展目的变址(extended destination index)寄存器。
    • 高级语言通过 EBP 来引用堆栈中的函数参数和局部变量。除了高级编程,它不用于一般算术运算和数据传输。它常常被称为扩展帧指针(extended frame pointer)寄存器。
    • ebp指向栈底,esp指向栈顶
    • edx保存整数除法后的余数

    指令指针

    指令指针(EIP)寄存器中包含下一条将要执行指令的地址,指向下一个执行的指令 Extend Instruction(向导) Pointer。某些机器指令能控制 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

    转载:https://www.cnblogs.com/wan-xiang/p/11713003.html

  • 相关阅读:
    C数据结构2.1-线性表抽象数据类型
    转载的内容
    转载springboot的内容
    jQuery中的load()Failed to load resource: the server responded with a status of 404 Maven框架遇到的问题
    java代码发送邮箱源代码
    Error:(1, 10) java: 需要class, interface或enum的错误
    性能测试系列五 压测常见的关注指标以及监控分析工具
    面试官常考的Selenium Web自动化面试题总结(上篇)
    性能测试系列四 压测指标的来源
    性能测试系列三 压测方式简单总结
  • 原文地址:https://www.cnblogs.com/DuWA/p/12363456.html
Copyright © 2011-2022 走看看