Sauf erreur de ma part,
mov eax, [0x00000000] et mov ax, [0x00000000]
ont le même code machine
il y aura éventuellement un octet avant ce code suivant le contexte du processeur à ce moment.
en contexte 16 bits mov eax, [0x00000000] aura un octet préfixe pour indiquer une opération 32 bits alors que
mov ax, [0x0000] n'en aura pas
en contexte 32 bits mov eax, [0x00000000] n'aura pas d'octet préfixe mais mov ax, [0x00000000] en aura un
tout comme mov eax, ebx et mov ax, bx ont le même code machine seul le contexte 32 bits ou 16 bits fera la différence et il faudra utiliser un octet préfixe modificateur de contexte pour passer du 16 bits au 32 bits ou inversement.