• Miércoles 18 de Diciembre de 2024, 21:15

Autor Tema:  Re: Imprimir números reales o flotantes  (Leído 2909 veces)

Agc

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Imprimir números reales o flotantes
« en: Jueves 9 de Enero de 2003, 02:19 »
0
Alguien sabe como imprimir en pantalla números flotantes en ensamblador? Sé como imprimir enteros pero tengo problemas para los flotantes.

GRacias de antemano y saludos a todos.

Cronodragón

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
    • http://www.teleportmedia.com/
Imprimir números reales o flotantes
« Respuesta #1 en: Sábado 19 de Abril de 2003, 00:48 »
0
Es un poco complicado, pero se puede hacer. La primera forma es entendiendo el formato de los número flotantes en ensamblador... me pregunto si alguien lo habrá logrado?? La otra forma es usando el procesador matemático para extraer las partes del número. Si pudieramos leer el lado derecho del número, y luego el lado izquierdo, entonces nada más tendríamos que desplegar las dos partes, poniendo un caracter '.' entre ellas, no es cierto? Supongamos que tenemos el número 1234.56789. Lo que hacemos es meterlo a la pila del procesador matemático con la instrucción FLD. Luego lo redondeamos a entero con FRNDINT (anteriormente habrá que programar al palabra de control para que trunque los números, usar FLDCW y FSTCW), y lo extraemos del procesador con FIST. Ahora tenemos el 1234 que acabamos de obtener, y vamos a sacar el lado izquierdo. Para hacerlo le restamos (FSUB) a 1234.56789 el valor entero 1234, con lo que nos queda 0.56789. Dependiendo de la cantidad de dígitos que queramos obtener, lo multiplicamos (FMUL) por una potencia de 10, digamos 1000 para sacar los 4 primeros. Ahora tenemos 5678.9, que volvemos a truncar y lo sacamos de la pila a memoria. Con una rutina para desplegar enteros podrás ver el número 1234.5678... Listo! :think: