Programación General > ASM (Ensamblador)

 Problema al linkar en 32bits (estando en 64)

(1/1)

Leber:
Hola, que tal.

Estoy leyendo un manual de asm, pero el codigo que muestran es de 32 bits, y mi máquina es de 64. Algunos ejercicios puedo hacerlos igual, pero cuando empiezan a manejar la pila también empiezan mis dolores de cabeza.

Imaginemos este, (lo he hecho yo para probar un poco):



--- Código: ASM ---# decreases.s Decrementa un valor hasta 0.section .datanumber:        .int 8frase:        .asciz "Res: %dn".section .text.globl _start_start:nopmov $1, %eaxmov number, %ebxloop:        dec %ebx        je just        pushl %ebp        pushl %ecx        movl %ebx, 4(%esp)        movl $frase, (%esp)        call printf        addl $8, %esp        jmp loopjust:        mov $0, %ebx        int $0x80 
Y luego hago:


--- Código: ASM ---as --32 decreases.s -o decreases.o y

--- Código: ASM ---ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o decreases -lc decreases.o 
Pero en mi maquina me devuelve:


--- Código: ASM ---ld: skipping incompatible /usr/lib/libc.so when searching for -lcld: skipping incompatible /usr/lib/libc.a when searching for -lcld: cannot find -lc 
Pero en otra maquina me lo hace correctamente.

Las diferencias son:

En mi máquina:


--- Código: ASM ---ls -l /lib/ld-linux.so.2 lrwxrwxrwx 1 root root 20 2011-02-02 14:09 /lib/ld-linux.so.2 -> /lib32/ld-linux.so.2 
En la otra:


--- Código: ASM ---ls -l /lib/ld-linux.so.2 lrwxrwxrwx 1 root root 9 2011-01-28 14:21 /lib/ld-linux.so.2 -> ld-2.7.so 
Tenéis alguna idea, seguramente algo estoy haciendo mal, pero no caigo.

Gracias de antemano

m0skit0:
Creo que tu problema no radica en ld, sino que tienes una libc de 64 bits y estás intentando compilar para 32 bits.

Además ten cuenta que la pila va por palabras de 64 bits y no 32, así que ojo con eso también.

Leber:
Entonces supongo que tendré que instalarme un SO de 32bits. Yo creía que diciendole que generara código de 32bits podía salvar esto.

Gracias por responder  ^_^

m0skit0:
Con instalar una librería de 32 bits te valdría creo.

Navegación

[0] Índice de Mensajes

Ir a la versión completa