@ollpu: да, хорошая ссылка. Но вы должны внимательно прочитать его, чтобы определить закономерности и три особых случая. Обновил этот ответ разделом, который я изначально написал для другого ответа.

ершенно новичок в двоичном кодировании x86-64. Я пытаюсь исправить старый код ассемблера.

В любом случае, я пытаюсь сделать что-то вроде этого (синтаксис Intel):

mov    [rbp+rcx], al

Ассемблер в настоящее время генерирует это:

88 04 0D

но это не похоже на правильную инструкцию. Если я изменю базу в SIB-байте изrbp в другой регистр, он работает нормально. Еще один способ заставить это работать - добавить однобайтовое смещение нуля (88 44 0D 00). Похоже, это происходит с другими подобными кодами операций.

Почему я не могу использоватьrbp там сmod=00?

Ответы на вопрос(1)

Ваш ответ на вопрос