Ensamblador - Como pasar una cadena.....?

 
Vista:

Como pasar una cadena.....?

Publicado por Paco (6 intervenciones) el 22/08/2002 18:28:35
Como puedo pasar una cadena d numeros hexadecimales a decimal?He hecho algo pero no funciona.No qiero q m lo hagan qiero q m enseñe alguien!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como pasar una cadena.....?

Publicado por David Cañadas (3 intervenciones) el 25/08/2002 12:05:50
Bueno, simplemente debes conocer el método para entender cómo están formados los números hexadecimales y los decimales a nivel interno. Como todos los números están en binario al fin, debes conocer como cambiar su base a hexadecimal o decimal (para mostrarlos, se supone).

Para tratar un número hexadecimal lo dividiremos en bloques de dos cifras (cada bloque equivale a un byte), comenzando por la derecha. Por ejemplo, cogemos el número 0325H, pues lo dividimos en dos bytes: 03 y 25.

Cada cifra del byte corresponde a un nibble (grupo de 4 bits). Así para conocer el primer nibble de 25, harás un AND del byte con 11110000b y lo moverás cuatro bits a la derecha, quedándote "2". Ahora con el segundo nibble, basta hacer un AND del byte con 00001111b, y te queda "5". Obviamente, si deseas mostrar esto en pantalla, al "2" y al "5" has de sumarles 48 unidades para convertirlos a ASCII :)

Para mostrar un número decimal, debes dividir el byte o word que desees convertir entre 10, hasta que llegue un punto en que el valor residente en el byte o word sea menor que uno.

Pongamos por ejemplo un byte con valor 128. Para separar estas cifras haces:

128 / 10 = 12, resto 8
12 / 10 = 1, resto 2
1 / 10 = <1, terminó la ejecución

Fíjate: en la primera división, el resto es la última cifra del número (8). En la segunda división, el resto es la cifra central (2), y en la tercera división, al dar <1, cogeremos el dividendo (1). Ahora basta ordenar los valores al revés, y nos da 1-2-8.

Si quieres convertirlo a ASCII, ya sabes, sumas a cada valor 48 unidades.

Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar