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
Ir a la versión completa