как работает дизассемблер? 

как он переделывает *.exe в *.acm нужен полный принцип работы ? 
 (т. е. считывает биты, распределяет их по кол-ву, и. т. п)? 

смотря какой. если системы команд имеют равный размер (без учёта операнда с данными) до достаточно сделать выбор из массива. у интела система команд смешанная и длины команд совершенно разнообразные. поэтому там декодирование напоминает поиск по дереву.

сначала разберись, как работает ассемблер, а тогда и вопрос отпадет. 
подсказка: язык ассемблера - язык низкого уровня...