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 respostas

Eu 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'

questionAnswers(4)

yourAnswerToTheQuestion