conversion hexadecimala decimal

buenas, me encuentro diseñando un frecuencimetro con el atmel at89c52 y tengo problemas par mostrar el dato, la cuestion es que no se como realizar la conversion hexadimal a decimal de un numero que me ocupe dos pociciones de memoria, como por ejemplo ,09c4-h, los bits menos significativos(c4) entan en r0 por ejemplo y los mas significativos en r1,¿como puedo transformar de hexadecimal a decimal un numero que esta en dos pociciones de memoria?
 
Se va dividiendo por 10 y listo, luego se le suma el valor del 0 para pasarlo a ascii si es necesario

Ejemplo aproximado:

mov a, dato
mov b,#10
div a,b ' Ahora obtienes el primer número y en b está el resto
add a,'0' Esta línea solo si no necesitas en ascii
mov adondesea,a
mov a,b
mov b,#10
div a,b ' Ahora obtienes el segundo número en a y en b el tercero
add a,'0' Esta línea solo si no necesitas en ascii
mov adondesea,a
mov a,b
add a,'0' Solo si hace falta
mov adondesea,a
sanseacabó

Bueno, este ejemplo es para 8 bits, para 16 se complica un poco/bastante, voy a buscar la rutina que la tengo hecha (no te garantizo que la encuentre), pero la historia es dividir por 10 solo que con 16 bits
 
Atrás
Arriba