跳转至

为什么有些 x86 寄存器有子寄存器?

通用寄存器和索引寄存器都有 16 位对应物,有历史原因。x86 架构基于 16 位架构,它扩展了寄存器 AX、BX、CX、DX、

图 4-5 x86 寄存器及其子寄存器

DI、SI、SP 和 BP。相应地,扩展保留相同的名称,但前缀 E,代表「扩展」。16 位版本保留用于向后兼容。这也解释了为什么索引寄存器没有 8 位抽象:它们用作内存地址偏移量,没有必要知道这些值的部分字节。