Duda MUY BASICA sobre los registros en Ensamblador

Iniciado por ferk93, 31 Mayo 2008, 17:36 PM

0 Miembros y 1 Visitante están viendo este tema.

ferk93

Buenas a to2!

Acabo de empezar a estudiar el lenguaje ensamblador y me ha surgido una duda sobre los registros.

Es lo mismo un registro de tipo EAX que de tipo AX?

Si no es asi, en que se diferencian?

Gracias de antemano y prdon x la duda, que se que es algo muy basico.

euyyn

Si no recuerdo mal:

EAX y AX no son "tipos" de registros, sino nombres de registros concretos. EAX es el doble de grande que AX (igual que EBX respecto a BX), y además AX es la parte menos significativa de EAX. Creo que era que EAX son 4 bytes, de los cuales los 2 menos significativos "son" AX.

La necesidad de ser compatible hacia atrás hace que el ensamblador del x86 sea odioso a más no poder. Cuando todas las aplicaciones de usuario sean Java o .Net, al fin podrán en Intel diseñar un repertorio como Dios manda (como ya hicieron al diseñar el Itanium).
Euyyn el astronauta
(las ganas mías, claro)

Rozor


        --------------
         | AH  |  AL |  <--- 2 x 16bit
         --------------
        |      AX       | <--- 16bit
        ---------------
        |      EAX     | <---- 32 bit
        ---------------
        |      RAX    |  <--- 64 bit
       ----------------


AX = 0x0000

Eso quiere decir que AH vale 0x00 y AL 0x00

si cambiasemos los registros

mov AH, 0x4C
mov AL, 0x69

entonces cambiaria el valor de AX

Al primer movimiento se quedaria en

AX = 0x4C00

Al segundo

AX = 0x4C69

16 DOS r00lz
out in the streets they call it murder....

ferk93

Gracias a ambos por vuestra ayuda.

Ahora lo tengo claro.

Salu2!