I. *_*edy 34

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"
Run Code Online (Sandbox Code Playgroud)

快进到8086.它有AL,AH,BL,BH,CL,CH,DL,DH寄存器,与8080类似,可以成对使用:AX,BX,CX,DX.

正如其他人所指出的那样,32位寄存器名称中的E意味着扩展.

  • 真棒!谢谢你.我只是猜测`E`代表你的帖子延长了. (2认同)

Guf*_*ffa 9

据我所知,没什么.它代表通用寄存器.

16位AX寄存器可以寻址为AH(高字节)和AL(低字节).

EAX寄存器是AX寄存器的32位版本.E代表延长.

  • 8080,8085和Z80具有8位寄存器A,B等.8086具有16位AX,EX等寄存器.80386及以上版本获得了EAX.我假设E和X都代表'扩展',X代表16位扩展,E代表32位扩展. (14认同)
  • @Jonathan:X 可能受到“扩展”的启发,但我还没有在任何地方找到这种描述。如果 X 没有官方含义,那就可以解释他们如何添加另一个“扩展”而不会感到愚蠢。将其命名为“扩展累加器扩展”寄存器似乎缺乏想象力...... :) (2认同)
  • @dboarman:它被命名为“C”,因为它源自语言“B”,它同样富有想象力...... http://en.wikipedia.org/wiki/C_%28programming_language%29#History (2认同)

sup*_*cat 5

在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位部分的能力是远的.没有比这些硬件或指令编码空间可能放在其他许多用途更有用的东西.另一方面,有时候这些能力在它们存在时是有用的.