O primeiro argumento para o script estará em $1 . Você pode usar uma substituição da sequência do bash para extrair a extensão; isso remove tudo da última ocorrência de . forward e armazena o resultado em $filename :
filename="${1%.*}"
Então você pode usar $filename no seu script onde quiser:
nasm -f elf "$filename.asm"
ld -s -o "$filename" "$filename".o io.o