Google 没有显示结果,
有人知道吗?
X 表示 pair,并且至少可以追溯到 8080。它有 8 位寄存器 B、C、D、E、H、L(等等),也可以成对使用(BC、 DE 和 HL)。 BC和DE对主要用于16位算术; HL 对通常保存一个内存地址。 X 代表 pair 的一些用法示例:
LXI D,12ABH ; "load pair immediate"
DCX B ; "decrement pair"
STAX D ; "store A (indirect) at pair"
快进到8086。它有寄存器AL、AH、BL、BH、CL、CH、DL、DH,与8080类似,可以成对使用:AX、BX、CX、DX。
正如其他人所指出的,32 位寄存器名称中的 E 表示 扩展。
据我所知,没什么。它代表通用寄存器。
16位AX寄存器可寻址为AH(高字节)和AL(低字节)。
EAX 寄存器是 AX 寄存器的 32 位版本。 E 代表扩展。
在8086上,AX寄存器是AH和AL的组合。同样,BX 是 BH 和 BL 等。在 80386 上,Intel 没有将 16 位寄存器合并为 32 位寄存器,而是为每个寄存器添加了 16 位。名称“AL”仍然指第一个字母命名的寄存器的位 0-7,“AH”指位 8-15,“AX”指位 0-15;名称“EAX”现在指的是寄存器的所有 32 位。
值得注意的是,大多数其他 16 位和 32 位处理器不提供任何等效的方法来仅访问寄存器的上部或下部。允许这种访问的成本(无论是在硬件复杂性还是在指令编码位方面)都是巨大的,并且在当今时代,将一个寄存器的一个 8 位部分添加到另一个寄存器的 8 位部分的能力远远不够。不如此类硬件或指令编码空间可能用于的许多其他用途有用。另一方面,当这些能力存在时,有时仍然会很有用。
正如 Mihai 所说,这只是一个命名约定。
但是,鉴于“X”通常用于“填写您的值”,并且数学家通常将其用作方程中选择的第一个变量名称,并且这些特定寄存器是通用目的(与 ESP 相反,ESP 是扩展(32 位)堆栈指针或 EIP(扩展指令指针),这也许就是选择 X 而不是“B”的原因。
我能想到的一个可能的原因是表明它没有“正常”状态。当谈论电子设备中的串行通信时,如果其中一根数据线可以是任何东西,您可能会说它的状态是 X,因为它不是/两者/不是 0 或 1。
没有人认为它来自十六进制吗?
以下是对每个x86通用寄存器代表什么的简要解释: