- Код: Выделить всё
//
// NCD использует сложную DFA-систему, состоящую из:
// 1) Первичного роутера, бифуркирующего по числу, взятому
// из первых первых старших пяти бит обрабатываемого байта.
// Некоторые бифуркации от первичного роутера ведут
// ко вторичным, некоторые — к роутерам-декодерам,
// обрабатывающим оставшиеся 3 бита как "правый октет".
//
// 2) Вторичных роутеров (или роутеров 2-го порядка), которые
// обрабатывают оставшиеся три бита. Бифуркации от роутеров
// второго порядка могут вести:
// а) К роутерам декодерам-рекордерам
// б) К роутерам резолвинга расширителей опкода
// в) К тритичному пента-роутеру, обрабатывающему
// пента-блоки второго байта опкода.
// 3) Тритичных роутеров (или роутеров 3-го порядка), которые
// идентичны первичному роутеру, но работают со вторым байтом
// опкода. Картина бифуркационных распределений аналогична:
// либо роутер-декодер, либо роутер 4-го порядка.
// 4) Роутер 4-го порядка обрабатывает оставшиеся три бита
// второго байта опкода. Бифуркации ведут либо к рекордерам,
// либо к роутерам резолвинга расширителей.
// 5) Роутер резолвинга расширителей работает с ModRM-блоком:
// бифуркирует по числу, взятому из Reg-поля ModRM-блока.
// Все бифуркации ведут к конкретному роутеру-рекордеру.
// Примечание: Все перечисленные роутеры, имеют в своих JAT
// исключительные бифуркации, ведущие на особые
// db-, dw-, dd-обработчики.
//
Читателям предлагается догадаться, о чём идёт речь