Инструкция устанавливает фрейм стека при запуске загрузчиком времени выполнения функции int _main()
,
PUSH EBP
MOV EBP, ESP
Установлен кадр стека, и для доступа к параметрам, если они были предоставлены, будет смещено EBP
+ размер параметра (WORD, BYTE, LONG и т. Д.).
Обычно регистр EAX
является обычным регистром для возврата состояния выхода из среды выполнения загрузчику операционной системы,
MOV EAX, 0
LEAVE
Другими словами, чтобы сказать, что программа успешно завершилась, возвращая 0 в Операционную систему.
Если используется возврат, кадр стека восстанавливается при выполнении во время выполнения до передачи управления обратно в Операционную систему.
POP EBP
По общему мнению, если произошла ошибка, значение будет ненулевым и может использоваться как из пакетных файлов (возвращаясь к старым временам DOS), так и из сценариев Unix, где он проверяет, успешно ли работала программа или нет и продолжайте в зависимости от характера командного файла или сценария.