• Domingo 22 de Diciembre de 2024, 14:34

Autor Tema:  Extender de 16bits a 32bits  (Leído 2121 veces)

njdiaz2

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Extender de 16bits a 32bits
« en: Martes 19 de Mayo de 2009, 05:51 »
0
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

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Extender de 16bits a 32bits
« Respuesta #1 en: Martes 19 de Mayo de 2009, 10:33 »
0
Cita de: "njdiaz2"
ya he implementado los registros extendidos y no me funcionan.
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

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Extender de 16bits a 32bits
« Respuesta #2 en: Martes 19 de Mayo de 2009, 18:11 »
0
Tienes razón que pena, cuando hablo de 8086 me refiero al procesador...
Siguiendo el tema he encontrado esto:
 
Código: ASM
  1.  
  2. org 100h
  3.  
  4. jmp a
  5. ; double word definition is supported:  
  6. mydouble dd 12345678h
  7.  
  8. ; it is equal to:  
  9. mywords   dw 5678h
  10.           dw 1234h
  11.  
  12. ;  and it is equal to:  
  13. mybytes   db  78h
  14.           db  56h
  15.           db  34h
  16.           db  12h
  17.  
  18. ; exactly 32 bits  
  19. binn dd 00010010001101000101011001111000b
  20. ; load double word to dx:ax  
  21. a: mov ax, binn
  22.    mov dx, [binn+2]
  23.  
  24. ret
  25.  
  26.  

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

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Extender de 16bits a 32bits
« Respuesta #3 en: Miércoles 20 de Mayo de 2009, 09:50 »
0
Cita de: "njdiaz2"
si este numero se puede operar sin ningún inconveniente
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...
Haciendo una rutina de lectura del teclado y otra de transformación de ASCII a entero.

njdiaz2

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Extender de 16bits a 32bits
« Respuesta #4 en: Miércoles 20 de Mayo de 2009, 20:08 »
0
Hey muchas gracias...