寄存器用途和英文全称

32位

寄存器类别和用途

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

android 和 寄存器 栈 寄存器ah al_寄存器

EAX、AX、AH和AL

android 和 寄存器 栈 寄存器ah al_二进制_02

一些寄存器的组成部分可以处理 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

参考:

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