007、存储—寄存器
寄存器
在 32 位 x86 环境 中,通用寄存器的完整宽度主要是 32 Bit。
32 位通用寄存器的取值范围是 0x00000000 ~ 0xFFFFFFFF。
寄存器 位于 CPU 内部,每个 CPU 核心都有对应的一套寄存器。
通用寄存器:EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI。
段寄存器:CS、SS、DS、ES、FS、GS。
指令指针寄存器:EIP。
标志寄存器:EFLAGS。
注意:ESP 和 EBP 都和栈有关,ESP 通常指向栈顶,EBP 通常用于定位当前函数的栈帧。
| 寄存器 | 用途 | 编号 | 范围 |
|---|---|---|---|
| EAX | 累加器,乘除指令常使用 EAX | 0 | 0x00000000 ~ 0xFFFFFFFF |
| ECX | 循环计数器 | 1 | 0x00000000 ~ 0xFFFFFFFF |
| EDX | 数据寄存器,I/O 和乘除扩展常用 | 2 | 0x00000000 ~ 0xFFFFFFFF |
| EBX | 基址寄存器,常作为数据指针 | 3 | 0x00000000 ~ 0xFFFFFFFF |
| ESP | 栈顶指针,指向当前栈顶 | 4 | 0x00000000 ~ 0xFFFFFFFF |
| EBP | 栈帧基址指针,常用于定位局部变量和参数 | 5 | 0x00000000 ~ 0xFFFFFFFF |
| ESI | 源变址寄存器,字符串操作源指针 | 6 | 0x00000000 ~ 0xFFFFFFFF |
| EDI | 目的变址寄存器,字符串操作目标指针 | 7 | 0x00000000 ~ 0xFFFFFFFF |
指令指针寄存器
指令指针寄存器:EIP。
EIP 中存储的是下一条即将执行的指令地址。
CPU 根据 EIP 指向的地址读取并执行指令,指令执行后 EIP 通常会自动指向下一条指令。
注意:EIP 属于 32 位 x86 寄存器;在 x64 环境中对应的是 RIP。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruiqy~!








