Compilando 32 bits Assembler em 64 bits do Ubuntu [duplicado]
Esta questão já tem uma resposta aqui:
Montando binários de 32 bits em um sistema de 64 bits (GNU toolchain) 2 respostasEu tenho programa escrito em linguagem assembly de 32 bits ... Agora eu só não consigo compilá-lo no sistema operacional de 64 bits. Na nossa escola eles são específicos e o programa tem que ser escrito em versão de 32 bits. Aqui está o meu programa:
bits 32
extern _printf
global _start
section .data
message db "Hello world!!", 10, 0
section .text
_start:
pushad
push dword message
call _printf
add esp, 4
popad
ret
Qualquer ideia? Eu tentei muitas maneiras de compilar isso. Saída de erro após a compilação:
nasm -f elf64 vaja4.asm
ld vaja4.o -o vaja4
./vaja4
saída:
vaja4.o: In function `_start':
vaja4.asm:(.text+0x7): undefined reference to `_printf'