• Domingo 22 de Diciembre de 2024, 13:21

Autor Tema:  Conversiones  (Leído 1770 veces)

Calzifer

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Conversiones
« en: Lunes 14 de Mayo de 2007, 23:07 »
0
Hola: :D

  Soy nuevo aqui. Esta pagina me parece genial. Necesito que me expliquen como convertir de Int a String  y de String a Int en ASM. Todo en C++, pero utilizando la llave del ASM, como lo muestro debajo:

Seri algo asi:

IntToString (int a)
{
  .
  .
  .
  .
   ASM
   {
     .
     .
     .
   }

    Cualquier ayuda la voy a agradecer.

}

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Conversiones
« Respuesta #1 en: Martes 15 de Mayo de 2007, 09:12 »
0
De int a string:
Se divide por 10 mientras sea posible y se va tomando el resto como digito para nuestra cadena sumandole el valor de '0' (48 en decimal). Cuando ya no podemos dividir por 10 hacemos lo mismo con el dividendo.

Ejemplo:
319 / 10 = 31
319 % 10 = 9 + '0' = '9'
31 / 10 = 3
31 % 10 = 1 + '0' = '1'
3 + '0' = '3'

De string a int:

Se le resta '0' a cada cifra y se la multiplica por 10 ^ posicion (empezando por cero en las unidades), se suman todos los resultados para obtener el numero final.

Ejemplo:
'3' - '0' = 3 * 10 ^ 2 = 300
'1' - '0' = 1 * 10 ^ 1 = 10
'9' - '0' = 9 * 10 ^ 0 = 9

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Calzifer

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Conversiones
« Respuesta #2 en: Martes 15 de Mayo de 2007, 21:34 »
0
Hola a todos:

    Necesito, de ser posible, ayuda u orientacion para crear algunas funciones en ensamblador. No poseo mucha experiencia en este lenguaje, asi que puedo necesitar de mucha ayuda, pero tambien apreciare la poca, en fin lo que me puedan ayudar.

Las funciones deben convertir de:

Int a String, String a Int, Int a Hexagesimal y la ultima, (aunque no es conversion, es calculo) hallar el factorial de un Int.

No pido que me hagan el trabajo, solo pido un poco de orientacion, en la medida de lo posible. Cualquier ayuda o sugerencia sera bien recibida.

Gracias

Vlad_Asen

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Conversiones
« Respuesta #3 en: Miércoles 16 de Mayo de 2007, 16:45 »
0
Esto es lo que yo estuve haciendo, pero no funca.

__int8* MyIntToStr(__int32 pValue)
{
  __int8 *temp = new __int8(20);
  asm
  {
         mov eax,pValue
         lea si,temp
         cmp eax,10
         jb resto
         mov bx,10

  ciclo: div bx
         cmp ax,0
         add dx,'0'
         mov [si],dx
         inc si
         cmp eax,10
         jb resto
         jmp ciclo

  resto: add ax,'0'
         mov [si],dx
         jmp salir

  salir:
  }
  return temp;
}