Większość wczesnych mikrokomputerów polegała na ręcznym kodowaniu języka asemblera, w tym większość systemów operacyjnych oraz dużych aplikacji. Było tak, ponieważ systemy te posiadały dotkliwe ograniczenia zasobów, narzuconą idiosynkratyczną pamięć i architekturę wyświetlaczy oraz dostarczały ograniczonych, niestabilnych usług systemowych. Być może ważniejszy był brak kompilatorów pierwszej-klasy dla języków wysokopoziomowych, odpowiednich do użycia w mikrokomputerach.
Czynnik psychologiczny również mógł odegrać ważną rolę. Pierwsza generacja programistów mikrokomputerów ciągnęła za sobą hobbystyczną postawę „majsterkowicza”.
W bardziej komercyjnym spektrum do najważniejszych powodów użycia języka asemblera zaliczamy jego minimalistyczną postać, minimalną wielkość potrzebnych zasobów, szybkość oraz niezawodność.
Typowe przykłady dużych programów napisanych w języku asemblera w dzisiejszych czasach to system operacyjny IBM PC DOS, kompilator Turbo Pascal oraz wczesne aplikacje, takie jak program do arkuszy kalkulacyjnych Lotus 1-2-3.
Według niektórych ludzi w branży, język asemblera był najlepszym językiem komputerowym do uzyskania najwyższej wydajności z Sega Saturn, konsoli która była znana z notorycznie trudnego tworzenia gier.