SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: daredevil en Sábado 10 de Julio de 2004, 06:42
-
Hola,
necesito saber como convertir un numero hexadecimal a decimal.. puesto que quiero imprimir en pantalla el numero decimal ..
es urgente!!!!!!
por favor alguien que me ayude!!!!! :blink:
-
Hola DAREDEVIL
Para pasar un número exadecimal a decimal basta con utilizar la rutina para tal propósito llamada BIN_bcd que se encuentra en la librería Rutinas matemáticas de los manuales de la MICRICHIP en la sección de notas de aplicación. Esta rutina entrega el número descompusto en unidades, decenas y centenas; luego de tener dicho número descompuesto se convierte a código ASSCI sumandole a cada dígito el decimal 48 (30h en hexadecimal) y ya está el número listo para mostrarlo en pantalla.
Nota: esta rutina sirve para números menores o iguales a 255 (FFh); para números mayores existen otras rutinas que tambien se encuentran en la misma sección.
Le anexo la rutna BIN_bcd (Debe cargar el número a convertir en el registro unidad y luego llamar la rutina BIN_bcd)
;==========================================
; RUTINA DE CONVERSION DE BINARIO A BCD
;==========================================
;
Bin_BCD clrf Decena ; limpiar decenas
clrf Centena ; limpiar centenas
movlw 0x64
otra subwf unidad,1 ; restarle cien al valor unidad
btfss status,cy
goto sum
incf Centena,1
goto otra
sum addwf unidad,1
movlw 0x0a
repite subwf unidad,1
btfss status,cy
goto sum1
incf Decena,1
goto repite
sum1 addwf unidad,1
return
;
Atte
amospi@hotmail.com
-
;) amospi, si ves los mensajes de este foro te daras cuenta que estamos hablando de lenguaje ensamblador para microprocesadores y no para microcontroladores como los PICs (hay un foro donde discutimos de Microcontroladores)
:) No te digo esto con mala intencion, ni para iniciar una discusion, es solo para informarte :hola:
:) Ahora con respecto a la pregunta de DaredevilHola,
necesito saber como convertir un numero hexadecimal a decimal.. puesto que quiero imprimir en pantalla el numero decimal ..
es urgente!!!!!!
por favor alguien que me ayude!!!!!
si quieres imprimir en pantalla no debes pasarlo a decimal solamente si no tambien a ASCII,
cuando tengas tu numero en hexadecimal
MOV AL,NUM ;numero en hexadecimal
AAA ;Le haces el ajuste decimal
ADD AL,30 ; le sumas 30 y ya esta en ASCII (listo para imprimirse en pantalla)