I accidentally ended up here: http://altdevblogaday.com/2011/11/09/a-low-level-curriculum-for-c-and-c/, and it turned out to be one of the most informative collection of stuff I have read so far. I knew that assembly was some kind of a low level language that can be executed directly by a processor, but, I also read that each processor has it's own assembly.
Questions:
.asm
is a typical extension for your assembly programs, but it's far from being a universal rule. You can also embed assembly into your C/C++ files using compiler-specific extensions.