The assembler (as) translates sumFirst.s to an object file sumFirst.o where each instruction now consists of a sequence of bytes with op codes encoded in as binary. E.g "addl" is replaced by a single byte, for example 0x01, 0x02, ..., or 0x05. Each different op code for "addl" determines what form the two operands will have and where each operand is located (in memory, in a register).
The gcc command can produce the object file sumFirst.o and stop without linking:
gcc -c sumFirst.c