I think a minor change to the ld command line will fix it. "-m" rather than "-b", and "_" rather than "-"...
ld -o ej1tp6 -m elf_i386 ej1tp6.o
Although when I try the command line you're using, it seems to work for me(?). I'm still running a 32-bit system, so I don't really need that at all, just...
ld -o myfile myfile.o
...works for me. If I make a typo, and type...
ld -o myfile myfile.asm
I get a similar error.
There are a lot of options to ld, and it seems pretty flexible about what it will accept, so I'm a little confused about what you're seeing. Your code looks right, so that's a good start! If you can't get it to work, get back to us!
Best,
Frank