В общем, идея такая:
константа64
константа32
смещение32
адрес64 (не уверен, что так бывает)
movabs rax,0x8899aabbccddeeff
48 b8 ff ee dd cc bb aa 99 88
Теперь есть слова, нужна грамматика (синтаксис), для того, чтобы описать возможные варианты инструкции,
и механизм, чтобы инструкцию построить (склеить) из значений битов и полей
Синтаксис определяет, как пишется код, но не определяет, что этот код делает.
Семантика говорит, что код означает. Прагматика - как означает.
Грамматика определяет, что код делает, а не только как он пишется.
Интересно, есть ли такое готовое у самих англоговорящих на их латинице?
Llama 3:
в документе "Intel 64 and IA-32 Architectures Software Developer's Manual" формат инструкций описан с помощью текстовых описаний и таблиц, но не с помощью формальной EBNF-грамматики.
Если вы хотите использовать формальную грамматику для парсинга или генерации инструкций, вам придется создать ее самостоятельно, основываясь на описаниях в документе.
Отредактировано Лис (2024-08-24 04:13:00)