Assembly source code is often hard to read, but the generated code is usually small and incredibly fast. Because of this, assembly was often used to optimize time-critical code sections.
As modern computers are quite fast compared to their ancestors, assembly language is rarely used at all. Today, even low-level device drivers are usually written entirely in C or C++.
Assembly might still be a valuable learning tool for people wanting to become excellent C++ programmers, tho. Knowing how the hardware works and how code is generated is a good start for creating fast and small code. I used this programming language a lot during the last half of the eighties.