/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Ensamblador(Assembler)

 
      Índice del Foro elrincondelc.com -> Otros lenguajes
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
skyangel



Registrado: 12 Abr 2006
Mensajes: 2

MensajePublicado: 13/04/2006 6:43 am
Título: Ensamblador(Assembler)

Alquien sabe como hacer esto:

int atoi(string s);
/* Convierte un numero pasado como cadena de texto en el entero equivalente, tener en cuenta que el numero puede tener signo */
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 13/04/2006 6:52 am
Título:

Si manejas bien el ingles te recomiendo que coloques un mensaje en uno de estos foros:

winASM
MASM32

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
skyangel



Registrado: 12 Abr 2006
Mensajes: 2

MensajePublicado: 13/04/2006 7:31 am
Título: Assembler

TASM(borland turbo Assembler)
Volver arriba
cheroky



Registrado: 22 Sep 2005
Mensajes: 1372
Ubicación: En ecx esperando un call

MensajePublicado: 18/09/2007 9:12 am
Título:

Que casualidad... mas vale tarde que nunca ;-)

Código:
int __cdecl s_atoi(const char *s)
{
static int _acu_;

    __asm{
        mov _acu_, 0x00
        sub esp, 0x4
        mov ecx, 0xa
        mov edi,  s
       
        cmp [edi], 0x2d /* - */
        jne __it
        inc edi
        mov [esp], 0x1
        call __cmp
   
    __it:
        call __cmp 
        movzx ebx, [edi]
        sub bl, '0'
       
        mov eax, _acu_
        mul ecx
        add eax, ebx
        mov _acu_, eax
         
        inc edi
        cmp byte ptr[edi], 0x00
        jne __it
       
        jmp __exit   
   
  __atexit:
        add esp, 0x4
        jmp __exit
   
    __ret:
        ret   

    __cmp:
        cmp byte ptr[edi], 0x39   
        ja __atexit
        cmp byte ptr[edi], 0x30   
        jb __atexit   
        ret
 __exit:
        cmp [esp], 0x1
        je __neg
        add esp, 0x4
        jmp __ex
       
  __neg:
       neg _acu_
       add esp, 0x4 
       
  __ex:
    }
   
return _acu_;
}


Es C inline assembly con muy pocos cambios se puede ensamblar con TASM o cualquier otro.

S2.
_________________
- Explícito es mejor que implícito.
- Simple es mejor que complejo.
- Complejo es mejor que complicado.
- Plano es mejor que anidado.
- Ralo es mejor que denso.


Ultima edición por cheroky el 19/09/2007 8:00 am; editado 1 vez
Volver arriba
david_celta



Registrado: 02 Jun 2005
Mensajes: 153

MensajePublicado: 18/09/2007 7:03 pm
Título:

Que casualidad!!

Creo que con el codigo anterior y sabiendo algo de la sintaxis de ensamblador se puede hacer
_________________
In all your fantasies,
you always knew
that man and mystery...

...were both in you...
Volver arriba
      Índice del Foro elrincondelc.com -> Otros lenguajes
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com