Compilación del ensamblador de 32 bits en ubuntu de 64 bits [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Ensamblaje de binarios de 32 bits en un sistema de 64 bits (cadena de herramientas GNU) 2 respuestas

Tengo un programa escrito en lenguaje ensamblador de 32 bits ... Ahora simplemente no puedo compilarlo en un sistema operativo de 64 bits. En nuestra escuela son específicos y el programa debe estar escrito en versión de 32 bits. Aquí está mi 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

¿Alguna idea? He intentado tantas maneras de compilar eso. Salida de error después de compilar:

nasm -f elf64 vaja4.asm
ld vaja4.o -o vaja4
./vaja4

salida:

vaja4.o: In function `_start':
vaja4.asm:(.text+0x7): undefined reference to `_printf'

Respuestas a la pregunta(4)

Su respuesta a la pregunta