Принцип работы компилятора

Тема в разделе "WASM.ASSEMBLER", создана пользователем lold, 24 фев 2009.

  1. lold

    lold New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2009
    Сообщения:
    4
    Удивительно просто,но не могу до конца понять как работает препроцессинг и ассемблирование в fasm.

    Не могу понять конкретно как просчитываться адрес для ExitProcess.
    Есть догадка,что разбиваеться по типу данных и структурам,а после сборки импорта фикситься,тоесть ассемблируеться код добавляються импорты просчитываеться размер и после этого идет фикс адреса.

    Разжуете пожалуйста как это работает,спасибо.
     
  2. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Структуру PE-файла знаешь? См. макросы library, import, находящиеся в include/macro/import32.inc
     
  3. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Компилятор не вычисляет адреса импортируемых функций. Это забота линкера.
     
  4. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Partner, он немножко не про то, имхо.

    lold, да, примерно так. Фасм многопроходной, и только на втором проходе в eax заносится правильное значение. Если я правильно помню, тут есть немножко объяснений.
     
  5. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960