谷歌没有显示结果,有人知道吗?
kwvwclae1#
X表示***对***,至少可以追溯到8080。它有8位寄存器B、C、D、E、H、L(以及其他),也可以成对使用(BC、DE和HL)。BC和DE对主要用于16位算术;HL对通常保存内存地址。X用于***对***的一些示例:
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表示 * 扩展 *。
tpgth1q72#
据我所知,没有。它代表通用寄存器。16位AX寄存器可编址为AH(高字节)和AL(低字节)。EAX寄存器是AX寄存器的32位版本。E代表扩展。
6mw9ycah3#
在8086上,AX寄存器是AH和AL的组合。同样,BX是BH和BL等。在80386上,英特尔不是将16位寄存器组合成32位寄存器,而是给每个寄存器增加了16位。名称“AL”仍然指第一个字母命名的寄存器的位0-7,“AH”指位8-15,“AX”指位0-15;名称“EAX”现在指寄存器的所有32位。有趣的是,大多数其他16位和32位处理器并不提供任何只访问寄存器高位或低位的等效方法,允许这种访问的成本(硬件复杂性和指令编码位)都是巨大的,在当今时代,将寄存器的一个8位部分添加到另一寄存器的8位部分的能力远不如可能投入此硬件或指令编码空间的许多其它用途有用。另一方面,当这种能力存在时,仍然存在有用的时候。
balp4ylt4#
正如Mihai所说,这只是一个命名惯例。然而,考虑到“X”经常用于“填充你的值”,并且通常被数学家用作方程中选择的第一个变量名,并且那些特定的寄存器是通用的(与扩展(32位)堆栈指针ESP或扩展指令指针EIP相反),这可能就是为什么选择X而不是选择“B”的原因。
1wnzp6jl5#
我能想到的一个可能的原因是表示它没有“正常”状态。当谈论电子设备中的串行通信时,如果其中一条数据线可以是任何东西,你可以说它的状态是X,因为它既不是/都不是/要么0要么1。
vm0i2vca6#
下面简要说明每个x86通用寄存器的含义:
6条答案
按热度按时间kwvwclae1#
X表示***对***,至少可以追溯到8080。它有8位寄存器B、C、D、E、H、L(以及其他),也可以成对使用(BC、DE和HL)。BC和DE对主要用于16位算术;HL对通常保存内存地址。X用于***对***的一些示例:
快进到8086。它有寄存器AL、AH、BL、BH、CL、CH、DL、DH,与8080类似,可以成对使用:AX、BX、CX、DX。
正如其他人所指出的,32位寄存器名称中的E表示 * 扩展 *。
tpgth1q72#
据我所知,没有。它代表通用寄存器。
16位AX寄存器可编址为AH(高字节)和AL(低字节)。
EAX寄存器是AX寄存器的32位版本。E代表扩展。
6mw9ycah3#
在8086上,AX寄存器是AH和AL的组合。同样,BX是BH和BL等。在80386上,英特尔不是将16位寄存器组合成32位寄存器,而是给每个寄存器增加了16位。名称“AL”仍然指第一个字母命名的寄存器的位0-7,“AH”指位8-15,“AX”指位0-15;名称“EAX”现在指寄存器的所有32位。
有趣的是,大多数其他16位和32位处理器并不提供任何只访问寄存器高位或低位的等效方法,允许这种访问的成本(硬件复杂性和指令编码位)都是巨大的,在当今时代,将寄存器的一个8位部分添加到另一寄存器的8位部分的能力远不如可能投入此硬件或指令编码空间的许多其它用途有用。另一方面,当这种能力存在时,仍然存在有用的时候。
balp4ylt4#
正如Mihai所说,这只是一个命名惯例。
然而,考虑到“X”经常用于“填充你的值”,并且通常被数学家用作方程中选择的第一个变量名,并且那些特定的寄存器是通用的(与扩展(32位)堆栈指针ESP或扩展指令指针EIP相反),这可能就是为什么选择X而不是选择“B”的原因。
1wnzp6jl5#
我能想到的一个可能的原因是表示它没有“正常”状态。当谈论电子设备中的串行通信时,如果其中一条数据线可以是任何东西,你可以说它的状态是X,因为它既不是/都不是/要么0要么1。
vm0i2vca6#
下面简要说明每个x86通用寄存器的含义: