¿Por qué puedo acceder a dword / word / byte más bajo en un registro pero no más arriba?
Empecé a aprender ensamblador, y esto no me parece lógico.
¿Por qué no puedo usar varios bytes más altos en un registro?
Entiendo la razón histórica derax
->eax
->ax
así que centrémonos ennuevo Registros de 64 bits. Por ejemplo, puedo usarr8
yr8d
, pero por qué nor8dl
yr8dh
? Lo mismo pasa conr8w
yr8b
.
Mi pensamiento inicial fue que puedo usar 8r8b
se registra al mismo tiempo (como puedo hacer conal
yah
al mismo tiempo). Pero no puedo Y usandor8b
hace el completor8
registrarse "ocupado".
Lo que plantea la pregunta: ¿por qué? ¿Por qué necesitaría usar solo una parte de un registro si no puede usar otras partes al mismo tiempo? ¿Por qué no solo quedarse solor8
y olvidarse de las partes inferiores?