macro assembler и директивы препроцессора Си

Тема в разделе "WASM.ASSEMBLER", создана пользователем like_a, 4 май 2007.

  1. like_a

    like_a New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2006
    Сообщения:
    16
    Может кто уже сталкивался с этим.
    1)Есть ли возможность в ассемлерном коде (который будет компилится ml) использовать директивы препроцессора наподобие #ifdef, #if defined() и т.д.
    2)Может ли компилятор cl перегнать исходники с .cpp в .asm и при этом не выполнять директивы перепроцессора (оставить их ml)?

    Может есть другие способы сохранить директивы препроцессора в ассемблерном коде. Буду благодарен любому личному опыту переданному мне. :)
     
  2. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    like_a
    1) используй любой внешний си-препроцессор или перенаправь вывод препроцессора в cl в файл (только не забудь ключ /P);
    2) ответ отрицательный. компилятор cl вообще не может "перегнать исходники с .cpp в .asm", он может только выдать ассемблерный листинг, генерируемый после обработки файла препроцессором;
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    с помощью cl.exe можно обработать код только препроцессором и выдать готовый листинг.
    какие такие директивы препроцессора оставить ml ? если перегнать цпп в асм, это уже подразумевает компиляцию.ъ
    как ты себе это представляешь вообще?
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Либо препроцессором (/P), либо компилятором (/Fa) - это разные вещи. Листинг - это уже откомпилированный код, просто выдаётся не в бинарный, а в текст, после этого работа остаётся только транслятору/ассемблеру.
     
  5. like_a

    like_a New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2006
    Сообщения:
    16
    Всем спасибо за ответы. Видимо нет в природе того что мне надо. Это наводит на мысль о том что я задачу поставил неправильно. :) Придумаю что-нибудь другое.
     
  6. like_a

    like_a New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2006
    Сообщения:
    16
    Я, кстати, действие противоположное хотел сделать: откомпилить, но обрабатывать препроцессором. И еще с возможностью пройтись препроцессором по сгенерированному asm листингу.
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    IFDEF IFNDEF IFI etc.
     
  8. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    like_a
    > Я, кстати, действие противоположное хотел сделать: откомпилить,
    > но обрабатывать препроцессором.
    препроцессор потому и пре- что работает _до_ компиляции ;)
    причем, сишный препроцессор слабее масмовского.
    другой вопрос, что иногда бывает можно извернуться - включить *.h файл в ассемблерный проект, обработать его сишным препроцессором, а потом транслировать ассемблером. я так делал, когда один и тот же *.h приходилось включать как в *.c, так и в *.asm