I did some Basic and Pascal programming in high school and college, but most of my early programming career was spent programming in C on MS-DOS and Windows. C has been described as “combining the speed and power of assembler with the readability of assembler.” Back in those days (DOS 3.3, then Windows 3.1), there really wasn’t much functionality available in the operating system, so you often had to resort to assembler to get things done.
I gather that programmers today tend to start off with higher-level languages, and don’t really need to get into assembler at all. For folks that haven’t had to deal with assembler, but are mildly curious about lower-level functionality, this should be an interesting article.
It walks through what happens when you compile, link, and run a simple C program.