Режимы адресации похожие есть (более ограниченные из-за фиксированного размера инструкции). Специальной lea нет, но там и обычными инструкциями адрес посчитать несложно.
а например call dword[func_base + eax*4] будет работать?
В x86? Будет, кто ж ему мешает. В ARM потребуется две инструкции.
Ну ты никак не можешь одновременно закодировать опкод и 32-битный (например) адрес func_base в 32-битной инструкции. Ты мог бы посчитать относительно PC, но у BLX (местный CALL) либо непосредственное смещение, либо регистр. Поэтому нужна ещё инструкция. А то и две.
нет скорей всего, у call нет адресной арифметики. сначало надо lea, а потом call. а мож и да хотя прям интересно, надо проверить, никогда не встречал акое на практике
Есть там всё, по крайней мере на x86
Обсуждают сегодня