Сборка в сомнении - PullRequest
       8

Сборка в сомнении

2 голосов
/ 14 августа 2010

Что означает lea 0x4(%esp),%ecx в сборке at & t? Что на самом деле 0x4 (% esp)?

Ответы [ 3 ]

3 голосов
/ 14 августа 2010

Это %esp + 0x4.

LEA обозначает эффективный адрес нагрузки. В данном случае это простое дополнение, как показано выше. Обычно люди и компиляторы больше его не используют, потому что теперь процессоры поставляются с отличным модулем генерации адресов (иначе называемым AGU), который позволяет использовать все виды причудливой арифметики для вычисления адресов из регистров и значений. Короче говоря, что бы вы ни делали с lea, теперь вы можете встроить его в любую другую инструкцию.

1 голос
/ 14 августа 2010

esp - указатель стека.0x4 это смещение.Синтаксис AT & T имеет command source, destination, а команда здесь LEA, что означает «Загрузить эффективный адрес».

Итак, мы говорим ЦП загрузить адрес «указатель стека + 4» в регистр ».ECX "

1 голос
/ 14 августа 2010
lea ecx,[esp+4]
...