modes inc assembly x86 naming-conventions cpu-registers

modes - inc ax assembly



¿Qué significa X en EAX, EBX, ECX... en ensamblaje? (5)

Google no muestra el resultado,

¿Alguien sabe?


Como Mihai dice, es solo una convención de nombres.

Sin embargo, dado que ''X'' se usa a menudo para "completar su valor" y es comúnmente utilizado por los matemáticos como el primer nombre de variable de elección en ecuaciones, y que esos registros particulares son de propósito general (en oposición a decir ESP, que es el puntero de pila extendido (32 bits) o EIP el puntero de instrucción extendida) que es quizás por qué se elige X en lugar de decir ''B''.


En el 8086, el registro AX fue la combinación de AH y AL. Del mismo modo, BX era BH y BL, etc. En el 80386, en lugar de combinar registros de 16 bits en registros de 32 bits, Intel agregó 16 bits a cada registro. El nombre "AL" todavía se refiere a los bits 0-7 del primer registro con nombre de letra, "AH" a los bits 8-15, y "AX" a los bits 0-15; el nombre "EAX" ahora se refiere a los 32 bits del registro.

Es interesante observar que la mayoría de los otros procesadores de 16 y 32 bits no ofrecen ningún medio equivalente para acceder solo a las partes superiores o inferiores de un registro. Los costos de permitir tal acceso, tanto en complejidad de hardware como en bits de codificación de instrucciones, fueron significativos, y en la actualidad, la capacidad de agregar una porción de 8 bits de un registro a una porción de 8 bits de otro registro está lejos menos útil que muchos otros usos para los cuales tal hardware o espacio de codificación de instrucciones podría ser puesto. Por otro lado, todavía hay momentos en que tales habilidades pueden ser útiles cuando existen.


La X significa par , y se remonta al menos al 8080. Tenía registros de 8 bits B, C, D, E, H, L (entre otros) que también podían usarse en pares (BC, DE y HL). Los pares BC y DE se usaron principalmente para la aritmética de 16 bits; el par HL generalmente tenía una dirección de memoria. Algunos ejemplos del uso de X para el par :

LXI D,12ABH ; "load pair immediate" DCX B ; "decrement pair" STAX D ; "store A (indirect) at pair"

Avance rápido al 8086. Tiene los registros AL, AH, BL, BH, CL, CH, DL, DH, que, de forma similar al 8080, pueden usarse en pares: AX, BX, CX, DX.

Como han señalado otros, la E en los nombres de registro de 32 bits significa extendida .


Nada, hasta donde yo sé. Representa un registro de propósito general.

El registro AX de 16 bits se puede direccionar como AH (byte alto) y AL (byte bajo).

El registro EAX es la versión de 32 bits del registro AX. La E significa extendido.


Una posible razón por la que puedo pensar es denotar que no tiene un estado "normal". Cuando se habla de comunicación en serie en electrónica, si una de las líneas de datos puede ser cualquier cosa, se podría decir que su estado es X ya que no es ni / ninguno de ellos ni 0 ni 1.