/
Inicio :: Foros

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

_xatoi para gcc

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



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

MensajePublicado: 24/09/2007 3:55 pm
Título: _xatoi para gcc

A peticion de unos usuarios pego el codigo en ensamblador de la funcion _xatoi (atoi) para generar una lib y poderlo usar en los test de rendimiento.

Código:

.intel_syntax

.data

.align 4
VAR: .long 0
BOL: .byte 0
.text

.globl __xatoi

 
__xatoi:

        push ebp
        mov ebp, esp
        xor eax, eax
        mov VAR, eax
        mov BOL, eax  /* false */
        mov ecx, 0xa /* 10*/
        mov edi, [ebp+8] 
       
        cmp byte ptr[edi], 0x2d /* '-' */
        jne __it
        inc edi

        mov byte ptr BOL, 0x1 /* true */
        call __cmp
   
    __it:
        call __cmp 
        movzx ebx, byte ptr[edi]
        sub bl, 0x30 /* '0' */
       
        mov eax, VAR
        mul ecx
        add eax, ebx
        mov VAR , eax
         
        inc edi
        cmp byte ptr[edi], 0x00
        jne __it
       
        jmp __atexit   
   
   __cmp:
        cmp byte ptr[edi], 0x39   
        ja __atexit
        cmp byte ptr[edi], 0x30   
        jb __atexit   
        ret

  __atexit:
       
        cmp byte ptr BOL, 0x1
        je __neg
        jmp __exit
       
   __neg:
        mov eax,  VAR
        neg eax
        mov  VAR , eax
  __exit:
        mov eax,  VAR    
        leave
        ret


Para ensamblarlo:

Lo guardamos con extension *.s

Generamos el objeto.
gcc -c _xatoi.s

Compilamos la libreria con ar del paquete MINGW o binutils de Linux
ar -rv libxatoi.a _xatoi.o

La funcion tiene el prototipo:
int __cdecl _xatoi(const char *s);

Para enlazar con -lxatoi

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.
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