Я знаю, что инструкции x86 могут иметь максимум 4 байта префиксов, например, Lock, rep, переопределения сегментов и т. Д.
Существует ли какой-то конкретный порядок, в котором они должны появляться, если используются несколько префиксов
Порядок можно найти в томе 2А Руководства разработчика программного обеспечения Intel.
В двух словах:
F2
F3
66
rep movsw
, в остальном порядок не должен иметь значения.
Архитектурный том руководств для разработчиков Intel подробно описывает макет, однако из того, что я помню в прошлый раз, когда я его читал, порядок для большинства не имел значения, , за исключением REX /REX.W префикс, который должен занимать слот, ближайший к началу фактических байтов инструкции (он также занимает слот больше всего справа)
REX
REX.W
Цитата из Руководства разработчика программного обеспечения Intel® 64 и IA-32, том 2A: Справочник по набору инструкций, AM
Префиксы команд разделены на четыре группы, каждая из которых содержит набор допустимых кодов префиксов.Для каждой инструкции полезно включать до одного префиксного кода из каждой из четырех групп (Группы 1, 2, 3, 4).Группы с 1 по 4 могут быть расположены в любом порядке относительно друг друга.