Что означает lea 0x4(%esp),%ecx в сборке at & t? Что на самом деле 0x4 (% esp)?
lea 0x4(%esp),%ecx
Это %esp + 0x4.
%esp + 0x4
LEA обозначает эффективный адрес нагрузки. В данном случае это простое дополнение, как показано выше. Обычно люди и компиляторы больше его не используют, потому что теперь процессоры поставляются с отличным модулем генерации адресов (иначе называемым AGU), который позволяет использовать все виды причудливой арифметики для вычисления адресов из регистров и значений. Короче говоря, что бы вы ни делали с lea, теперь вы можете встроить его в любую другую инструкцию.
LEA
lea
esp - указатель стека.0x4 это смещение.Синтаксис AT & T имеет command source, destination, а команда здесь LEA, что означает «Загрузить эффективный адрес».
esp
command source, destination
Итак, мы говорим ЦП загрузить адрес «указатель стека + 4» в регистр ».ECX "
lea ecx,[esp+4]