C może być wykorzystywane jako programowanie niskopoziomowe, ale generalnie to assembler, ewemtualnie C plus wstawki assemblerowe. Skąd to pytanie? Tak naprawde teraz to nawet uC typu STM32 czy AVR używaja C, a nawet C++ przy jakimś powazniejszym RTOS, asseblera używa się zazwyczaj żeby zoptymalizować niektóre funkcje trygonometryczne albo FFT( Fast Furier Transforamtion), czy inne skomplikowane zagadnienia w których kompilator generuje nadmiarowy kod. Jeżeli chciałbyś używać tego do zagadnień typu Reverse Engineering to jak najbardziej assembler byłby wskazany przynajmniej dla popularnych procesorów ARM lub Intel.