Compiling 32 bit assembly on 64bit system (Ubuntu)

When your assembler and linker are x86_64 versions, the options to produce i386 (32-bit) output are

as --32
ld -m elf_i386

You don’t have to use as and ld just because you’re working with assembly code. gcc can be used, and in that case you would use -m32.

gcc -m32 -nostdlib myprog.s -o myprog

Leave a Comment