Ayuda!! Transferencia de 16 bits a registro de 32

princejm
20 de Mayo del 2006
Hola,
Soy una novata en ensamblador del 8086 y estoy haciendo un programa en el que tengo un vector de numeros de 16 bits al que apunta el registro si, y quiero ir sacando numero a numero y meterlo en un registro de 32 bits. Como lo hago???

Un saludo

hiei
20 de Mayo del 2006
Si lo metes en un registro de 32 bits sera EAX, EBX ECX o EDX no? Bien, eso ya no es 8086 puro porqe estaras usando instrucciones de i386... pero bueno, si me equiboco dimelo...
La idea es que los registros EAX, EBX, etc. se puede usar su parte baja como AX, BX, CX, y DX respectibmente... Es decir, que si yo hago
MOV EAX, 0200h
MOV AX, AAh
Tender en EAX el numero 02AAh porque la segunda instruccion no altera la parte alta del registro EAX...
Lo mismo pasa con EBX, ECX y EDX.
Para mover un dato de 16 bits a un registro (en este caso EAX, pero tambien funciona con EBX, ECX, y EDX) de 32 bits y dejar su parte mas significatiba (los 16 bits superiores) a cero haremos:

XOR EAX, EAX ; Esto limpia (pone a cero) EAX
MOV AX, WORD PTR [ SI ]

Aunque tengo algunas dudas de si esto es lo que pides... espero que te sirba. Si es otra cosa... especif8ica bien que es lo que debes hacer.

Suerte.

princejm
20 de Mayo del 2006
Muchas gracias tío! Voy a probar eso que me dices a ver que pasa, es eso lo que quiero, yo no hacía un xor por lo que la parte alta de el registro de 32 bits contenia basura.

Un saludo.