Pregunta: | 51501 - PASAR NUMERO 32 BITS EN 2 REGISTROS DE 16 A VARIABLE DE 32 |
Autor: | jesus garcia martin |
Hola buenas, aki estoy dando mis primeros pinitos en ensamblador y tengo un ejercicio casi terminado pero no me sale lo mas sencillo. Ojala me puedan ayudar porque no le veo la manera y he intentado varias cosas ya. Para empezar estamos en Turbo ensamblador de borland sin usar registros ni directivas de 32 bits, es decir ensamblador de MSDOS practicamente, asi k nada de usar registros extendidos ni instrucciones complejas de 32 bits.
Bueno la cuestion es k al final tengo un numero de 32 bits en dos registros de 16: - los 16 bits mas altos en DX - los 16 bits mas bajos en AX Quiero pasar ese numero de 32 bits a una variable llamada: - resultado DD 0 ; (Esto es la definicion doble-palabra) Y he probado con diferentes opciones de mov y movzw o algo asi pero nada, seguramente que en la sintaxis o en los typecast o algo me equivoque. Espero k alguien me de una solucion, ya mas bien por saber como es. Muchas gracias. |
Respuesta: | Marianne Licea |
;Esta es una manera de hacerlo. De aquĆ sacas lo que te hace falta
Dosseg .model small .data var dd ? .code main proc near mov ax,@data mov ds,ax mov di, offset var mov [di],ax ;El valor de AX se guarda en la parte baja de la variable add di,2 mov [di],dx ;DX en la parte alta mov ax,4c00h int 21h end |