Programación General > ASM (Ensamblador)

 Extender de 16bits a 32bits

(1/1)

njdiaz2:
Hola que tal, soy nuevo en el foro y luego de echar un vistazo he encontrado en las dudas y propuestas de otros colegas solución a mis problemas de programación en Ensamblador y por esto doy gracias.

Ahora después de buscar por horas y no encontrar nada relacionado, he decidido hacer la siguiente pregunta:

En mi proyecto de arquitectura de computadores (en Ensamblador) debemos de ingresar 4 números cada uno de 7 cifras por teclado, según lo que he notado cada número en Ensamblador es tratado bajo código ASCII y tiene un valor decimal de 3 cifras, para la cual un numero de siete cifras tomaría 21bits y trabajando sobre 8086 cuyos registros son de 16bits genera un error; ahora mi pregunta es: que método puedo utilizar o como puedo realizar este procedimiento bajo la arquitectura del 8086, ya he implementado los registros extendidos y no me funcionan.

Por cualquier ayuda o sugerencia mil gracias.

m0skit0:

--- Cita de: "njdiaz2" ---ya he implementado los registros extendidos y no me funcionan.
--- Fin de la cita ---
Hablas de arquitectura 8086. Eso no existe, supongo que te refieres al procesador 8086 (x86-16). El 8086 no tiene registros extendidos. Son de 16 bits y punto. Debes usar 2 registros y el acarreo para operar con números mayores.

Si no te refieres al procesador 8086, especifica sobre qué procesador en concreto estás trabajando.

njdiaz2:
Tienes razón que pena, cuando hablo de 8086 me refiero al procesador...
Siguiendo el tema he encontrado esto:
 
--- Código: ASM --- org 100h jmp a; double word definition is supported:  mydouble dd 12345678h ; it is equal to:  mywords   dw 5678h          dw 1234h ;  and it is equal to:  mybytes   db  78h          db  56h          db  34h          db  12h ; exactly 32 bits  binn dd 00010010001101000101011001111000b; load double word to dx:ax  a: mov ax, binn   mov dx, [binn+2] ret  
En el codigo anterior utilizan una palabra doble para un numero hexadecimal, mi pregunta es si este numero se puede operar sin ningún inconveniente y de serlo como puedo ingresarlo por teclado...

Gracias por su ayuda...

m0skit0:

--- Cita de: "njdiaz2" ---si este numero se puede operar sin ningún inconveniente
--- Fin de la cita ---
Cualquier número se puede operar sin inconveniente. Éste igual. Simplemente hay que utilizar más de un registro para operar con él si es doble palabra.


--- Cita de: "njdiaz2" ---como puedo ingresarlo por teclado...
--- Fin de la cita ---
Haciendo una rutina de lectura del teclado y otra de transformación de ASCII a entero.

njdiaz2:
Hey muchas gracias...

Navegación

[0] Índice de Mensajes

Ir a la versión completa