Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Нужен коментарий кода


Автор: GIK 9.12.2006, 14:56
Всем доброго времени суток.
Я в ассемблере мало понимаю, есть кусок ассемблерского кода в С++ коде. 
Вот он:
Код

__asm 
    {
      lea     eax, buf
      push    0
      push    0
      push    eax
      push    ExitProcess
      push    module
      push    DeleteFile
      push    UnmapViewOfFile
      ret
    }


Кто нибуть, раскажите что есть что,  в этом коде smile 

Автор: MAKCim 9.12.2006, 16:16
Код

__asm 
    {
      lea     eax, buf        ; берем эффективный адрес переменной buf (по сути смещение внутри сегмента (данных/стека))
      push    0 ; записываем в стек 0
      push    0
      push    eax ; записываем в стек регистр eax
      push    ExitProcess       ; записываем в стек адрес (видимо) процедуры ExitProcess
      push    module ; аналогично push ExitProcess
      push    DeleteFile ; аналогично push ExitProcess
      push    UnmapViewOfFile ; аналогично push ExitProcess
      ret ; достает из вершины стека значение и помещает его в регистр eip
    }

Автор: GIK 9.12.2006, 16:52
Спасиб  smile 

Автор: W4FhLF 9.12.2006, 18:06
GIK, ну я и сюда залезуsmile Скажу тебе просто, смысл даных действий заключается в том, чтобы вызвать эти 3 функции не возвращаясь в программу, т.е. на выходе из одной апи мы сразу попадаем в другую, не возвращая управление нашей программе.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)