Если я скажу:
lea (%eax,%eax,2), %edx
Меня учили, что это, по сути, означает:
edx = eax + eax * 2
Как формат к этому работает?
И я думаю, это подводит нас ко второму вопросу. Если у меня что-то вроде этого:
add -0x4(%esi, %ebx, 4), %eax
Я понимаю, что первый операнд добавляется ко второму операнду, а затем сохраняется во втором операнде, но опять же, я не понимаю, что такое обозначение первого операнда. Другой пример: если бы у меня было:
cmp %eax, (%esi, %ebx, 4)
..., означает ли это, что значение% eax сравнивается со значением:
esi + ebx * 4
...? Я пробовал искать много такого материала, но, полагаю, я не использовал правильные слова, чтобы найти значимый ответ, поэтому я решил опубликовать здесь.
-4
, а не+4
. 22.04.2012