• Jueves 14 de Noviembre de 2024, 17:07

Autor Tema:  Urgente!!!pasar De Un Numero Decimal A Bcd  (Leído 2526 veces)

NILIS

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Urgente!!!pasar De Un Numero Decimal A Bcd
« en: Jueves 10 de Junio de 2004, 19:51 »
0
Vamos a ver tengo una dudilla. Me han mandado hacer un programa que introduzca una cadena de caracteres inferior a 8 caracteres e imprima en pantalla su correspondiente valor decimal.

La conversión de binario a decimal ya la tengo hecha y esta bien, el problema es
ke a la hora de mostrar por pantalla el valor decimal por pantalla (para ello necesito saber el código ascii del nº decimal, yo lo que hago es sumarle 30h o 48 en decimal a la variable en la que almaceno el resultado, de esta manera obtengo el código ascii), me da problemas si el valor decimal es de mas de 1 dígito ya que código ascii hay desde 0 hasta 9 para los numeros.

Ej: si yo meto 01111111b = 127d = 7Fh -----> al sumarle a 127, 48 obtengo 175 entonces por pantalla muestra el código ASCII del 175 = >>, esto me pasa porque el valor de decimal tiene mas de una cifra.

Ej: si yo meto 00000100b = 8d=8h---->al sumarle a 8, 48 obtengo 56 entonces por pantalla muestra el código ASCII del 56 = 8, aki no tengo problemas porque tiene menos de 2 digitos.

Entonces a mi lo que me interesaria seria obtener el BCD del n decimal.
Ej: 127d --En BCD = 0001 0010 0111
De tal manera ke pueda almacenar el 0001 en 1 variable1
De tal manera ke pueda almacenar el 0010 en 1 variable2
De tal manera ke pueda almacenar el 0111 en 1 variable3

De esta manera le podria sumar a cada variable 48 en decimal para obtener el codigo ASCII de cada digito y poder visualizarla. Asias  :lol:

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Urgente!!!pasar De Un Numero Decimal A Bcd
« Respuesta #1 en: Viernes 11 de Junio de 2004, 21:30 »
0
Veamos si entendi si:
1) lees del teclado y despues exibes el valor decimal del Ascii de la tecla presionada

2)si presiono enter sera el valor leido sera 13d si presiono 'M' tendre 77d en mi buffer de lectura.

3) en resumen el problema seria exhibir el vaor decimal de un numero de 8Bits??

suponemos que el valor de a exhibir esta en DL
Código: Text
  1.    
  2.  
  3.                mov si,offset buffer
  4.                add si,3  
  5.                mov cx,3
  6.                mov bl,10        &#59;;; para separar en decenas
  7.                mov al,dl          
  8.      p0:     xor   ah,ah       &#59;;limpiamos el residuo de la divicion
  9.                div bl
  10.                add  ah,48        &#59;;;Ascii de un digito
  11.                mov [si],ah       &#59;;guardamos en el buffer
  12.                inc si
  13.                loop  p0            &#59;;se repite el ciclo 3 veces
  14. .
  15. .
  16. .
  17. buffer db '000$'
  18.  
  19.  
  20.  

La idea es seprar cada digito del numero, convertirlo en Ascii y guardarlo en un buffer.

NILIS

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Urgente!!!pasar De Un Numero Decimal A Bcd
« Respuesta #2 en: Lunes 14 de Junio de 2004, 09:13 »
0
Killo gracias, lo he probao y funciona a las mil maravilla  :comp:  :lol:

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Urgente!!!pasar De Un Numero Decimal A Bcd
« Respuesta #3 en: Martes 15 de Junio de 2004, 03:27 »
0
"...no hay de queso no mas de papa"