PE 64 и FASM пример

Тема в разделе "WASM.BEGINNERS", создана пользователем SlaVVVa, 17 янв 2023.

  1. SlaVVVa

    SlaVVVa New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2022
    Сообщения:
    10
    Смотрел примеры FASM заинтересовала строка
    sub rsp,8*5 ; reserve stack for API use and make stack dqword aligned
    Почему в 32 битном режиме стек устанавливается сам а тут нет - надо резервировать?
    И почему если заменить на
    sub rsp,8*8 ;
    не работает программа?
     
    Последнее редактирование: 17 янв 2023
  2. aa_dav

    aa_dav Active Member

    Публикаций:
    0
    Регистрация:
    24 дек 2008
    Сообщения:
    441
    Выравнивание по 16 байтам чтобы вызванная процедура была уверена, что может располагать переменные для всякого SSE выровненными в стеке, ибо там выравнивание критично важно для работы.
    А на линуксах еще нету того дурацкого правила, что даже если у процедуры меньше, чем 4 параметра (включая 0), то место как бы под них на винде всё-равно надо выделять.
     
    SlaVVVa нравится это.
  3. SlaVVVa

    SlaVVVa New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2022
    Сообщения:
    10
    а почему тогда OS по умолчанию выравнивает до 8 байт (как я понимаю по умолчанию так)?
     
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.709
    SlaVVVa,
    при вызове процедуры в стек помещается адрес возврата из процедуры, а это как раз 8 байт. Вы внимательно перечитали ту ссылку, которую я вам дал? Программные соглашения x64
     
  5. SlaVVVa

    SlaVVVa New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2022
    Сообщения:
    10
    сколтко не читал не понимаю раздел Unwindability (Способность очищаться, раскрутка) - про какую очистку идёт речь? а что такое xdata?
    --- Сообщение объединено, 19 янв 2023 ---
    Mikl___, В примере 4 опечатка - должно быть union а там struct.
     
  6. aa_dav

    aa_dav Active Member

    Публикаций:
    0
    Регистрация:
    24 дек 2008
    Сообщения:
    441
    Там очень много "продвинутого материала", который на начальных этапах даже не надо пытаться понимать. Очень подробная просто и исчерпывающая статья, но для начала избыточная очень.
    Можно еще тут посмотреть азы https://wasm.in/threads/utochnenie-po-peredachi-argumentov.34595/
     
  7. SlaVVVa

    SlaVVVa New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2022
    Сообщения:
    10
    A про какую очистку идёт реч???