Тупой нубский вопрос: Правильно ли я понимаю, что использование регистров ESP/RSP, R12 в качестве базы, при адресации памяти по базе со сдвигом, всегда кодируется с помощью SIB-байта, и если необходимо уменьшение размера кода, то в качестве базы выгоднее использовать другие регистры?
Если долго смотреть в эти таблицы, таблицы начнут смотреть в тебя: Комбинация 100, соответствующая номеру регистра sp/esp/rsp, используется для подключения SIB-байта. Этот регистр не может оказаться в поле R/M. Аналогичная судьба у bp/ebp/rbp в поле Base SIB'а.