Você já tem seu arquivo de objeto (gerado, como você supôs corretamente, usando as -gstabs -o ex71.o ex71.s ), então, para vinculá-lo, você deve estar usando:
gcc -o ex71 ex71.o
Veja, por exemplo, este SO pergunta .
O undefined reference to main do GCC é porque espera uma função main quando instruído a criar um executável. Pelo que entendi (posso estar errado, nunca fiz programação em linguagem assembly), você precisa de uma função _start (caso em que você usaria ld ) ou uma função main (nesse caso, você usaria o GCC). Então, substitua f por _start e faça:
ld -o ex71 ex71.o
Ou substitua f por main e faça:
gcc -o ex71 ex71.o
Depois disso, obtenho um segfault, mas cabe a você depurar. Minha compreensão disso termina aqui. :)