Как процессор понимает команду?
Ну если просто,  то углубившись в рассматривание микропроцессора мы увидим что на самом "дне" находится так называемые " Элементы цифровой логики" "И, ИЛИ, НЕ". 
Это кубики "ЛЕГО" из которых все собрано. Это атомы всей цифровой техники. 
Так вот если мы скажем поставим параллельно 8  элементов и подадим на них скажем 8 сигналов (с какими то логическим уровнем 0 или 1 - "00101001" то на выходе мы получим 8 ответных сигналов (в зависимости какой элемент находится в данной позиции "101011100") . 
Ну вот эта последовательность кубиков ЛЕГО и определяет систему команд процессора. (например х86, или ARM.....) и ЭТА система команд ЖЕСТКО зашита в конкретный процессор. 
Ну а дальше все как катушка с нитками, размещаем соединения всякие штуки для памяти и учитывая что в процессоре миллионы транзисторов, а скажем элемент "НЕ" содержит 2 транзистора, то понятно сколько там этих "кубиков" в процессоре.

P.S. Но если честно то углубляться в эти дебри рационального смысла не имеет так как на Ассемблере  1 команда  ну например в 32х разрядном процессоре это скажем 3 слова по 4 байта то есть 12 байт, а скажем программа на С++ после компиляции занимает 200 килобайт то написать код в 16000 строк это задача для истинного мазохиста.  такие задачи делает коллектив и каждый все равно пишет по 1-2 тысяче строк потом это сливают в общий проект и потом мы получаем ОС Win10 которая занимает 4 гигабайта кода ну в общем невообразимый объем работы.
в общих чертах: так и понимает, как описано в системе команд.
процессор не получил команду,  он ее прочитал из первого байта памяти.
если байт(или несколько) соответствуют команде - выполнит и т.д.
если команда предполагает некие данные, то следующие за командой байты считаются данными, а не командой
логика и набор команд зависит от процессора.