Całych programów w asemblerze się dziś raczej nie pisze; natomiast czasem pisze się pojedyncze funkcje, głównie w celu użycia jakichś niskopoziomowych mechanizmów, do których nie ma dostępu z języków wyższego poziomu, czasem w celu przyspieszenia działania (ale w tym na serio trzeba wiedzieć co się robi, bo trudno przebić dzisiejsze kompilatory w optymalizacji).
Zresztą jeśli tworzy się narzędzie, które ma operować na kodzie maszynowym (jak np. debugger) to nawet jeśli nie pisze się w asemblerze, należy go rozumieć a nawet znać chociaż pobieżnie kodowanie instrukcji maszynowych.
Asemblera nie należy uczyć się na pamięć (po dłuższej pracy najczęstsze instrukcje i tak się zapamięta), trzeba natomiast rozumieć jak działa procesor oraz umieć czytać dokumentację.
Nie zabardzo rozumiem pytanie. Twoim zadaniem jest opracować debugger MIPS? Czy poprostu zastanawiasz się czy warto nauczyć się asemblera bo widziałeś taka ofertę pracy?
Szczerze mówiąc takiej pracy jest dość mało, głównie są to programiści którzy pracują dla producentów sprzętu robią biosy, firmware, sterowniki. Chociaż i to można zrobić z powodzeniem w C.
Producenci samochodów tworzą oprogramowanie dla aut w C/C++ ale weryfikują kod w assemblerze czy jest poprawny (w celu wyeliminowania błędu kompilatora). Mowa o oprogramowaniu do ABS’ów i innych “aplikacji” RT.
Odpowiadając na pytanie, to zależy czym chcesz się zajmować.
Tak się domyślam że może być to zlecenie od dowolnego producenta sprzętu, moze być też dla sektora automotive, ale oni też mają swoich kooperantów, którzy tworzą im odpowiednie narzędzia. Widzę od pewnego czasu że Eclipse ma wersje dla sektora automotive. (Eclipse IDE for Automotive Software Developers), ale to jest chyba do C/C++ i Javy.