Io conosco l'assembly livello scolastico (4^ sup.) ma posso dirti che lo trovo immensamente utile in quanto permette di controllare direttamente il computer. Questo te l'avranno già detto in tanti quindi preferisco farti un esempio: immagina di voler bloccare la tastiera: per fare una cosa del genere in assembly bastano poche righe
Totale SEGMENT PARA PUBLIC 'Totale'
ASSUME CS:Totale,DS:Totale,SS:Totale
ORG 100h
;Il programma vero e proprio sono le prossime 3 istruzioni
Inizio: IN AL,21h
OR AL,01000000b
OUT 21h,AL
INT 20h
Totale ENDS
END Inizio
Inoltre puoi agire direttamente sulla memoria (il che significa anche la possibilità di modificare le routine del sistema operativo quando è già in esecuzione)
Per farla breve non dico che sia indispensabile (a meno che tu non voglia fare il sistemista) ma è cmq un ottimo supporto data anche la sua integrazione con il C.