Disassembler je program převádějící strojový kód do symbolického zápisu v assembleru. Je používán k analýze přeložených programů, u nichž není k dispozici jejich zápis v žádném vyšším programovacím jazyce.
Kód vygenerovaný disassemblerem je daleko obtížněji srozumitelný, než původní člověkem napsaný zdrojový kód, a to i pokud šlo o kód napsaný původně přímo v assembleru. Neobsahuje totiž ani původní názvy proměnných nebo podprogramů, ani žádné doprovodné komentáře.
Na rozdíl od debuggeru vypisuje „mrtvý kód“, což znamená, že v něm vidíme výpis kódu ještě před jeho spuštěním. A pokud se kód po jeho spuštěním sám upravuje v RAM paměti nebo ho upravuje jiný proces, tak se tyto změny ve výpisu nezobrazí. Toho se využívá při ochraně programu před disassemblováním.
Příkladem disassembleru je nástroj ndisasm, dodávaný spolu s assemblerem Netwide Assembler nebo IDA.
Potřeba využití disassembleru v běžné programátorské práci výrazně klesá v souvislosti s rostoucí dostupností programů s otevřeným zdrojovým kódem.