007、存储—通用寄存器
通用寄存器
32 位寄存器 可以拆分使用,例如 EAX 可以拆成 AX、AH、AL。
EAX = 32 Bit,AX = EAX 的低 16 Bit,AH = AX 的高 8 Bit,AL = AX 的低 8 Bit。
AX 是 EAX 的低 16 位,AH 和 AL 是 AX 再拆出来的两个 8 位。
| 32 Bit | 16 Bit | 高 8 Bit | 低 8 Bit |
|---|---|---|---|
| EAX | AX | AH | AL |
| EBX | BX | BH | BL |
| ECX | CX | CH | CL |
| EDX | DX | DH | DL |
| ESP | SP | - | - |
| EBP | BP | - | - |
| ESI | SI | - | - |
| EDI | DI | - | - |
注意:传统 32 位 x86 中,只有 EAX、EBX、ECX、EDX 可以继续拆成 AH/AL、BH/BL、CH/CL、DH/DL。
ESP、EBP、ESI、EDI 可以拆成 16 位的 SP、BP、SI、DI,但没有 AH/AL 这种高低 8 位形式。
实操案例


学习检查清单
| 检查项 | 状态 |
|---|---|
| 能说明 EAX、AX、AH、AL 的包含关系 | 待复盘 |
| 能根据对子寄存器的写入还原 EAX 的最终值 | 待复盘 |
| 知道只有传统四个通用寄存器拥有 AH/BH/CH/DH | 待复盘 |
| 能在调试器中切换十六进制观察寄存器变化 | 待复盘 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruiqy~!











