Each individual machine code instruction is represented by a letter sequence called a mnemonic. A program called an assembler converts the assembly language into machine code. You can mix assembler and compiler output by linking together their object files. You write assembler programs when you need great speed, or want to talk to particular pieces of hardware.
Assembly language is slow to write and non-portable.
When you want to use a function, you call it. When a function is called the thread of execution switches to that function, starting at the first statement in its body. When the end of the function, or the return statement, is reached the thread of execution returns to the statement immediately following the function call. A compiler takes a source file and makes sense of it. It is the first stage in the conversion of a program into machine code.