Помогите написать макрос для VS

Тема в разделе "WASM.BEGINNERS", создана пользователем intel_x128, 12 авг 2011.

  1. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    Помогите написать небольшой макрос - аналог dup в фасме.
    Например мне в код нужно вставить 100 нопов.

    В фасме делаю так:
    db 0x90 dup (100)

    В студии приходится делать так:
    _asm
    {
    _emit(0x90)
    _emit(0x90)
    _emit(0x90)
    //...
    _emit(0x90)
    };


    Помогите написать небольшой макрос, который позволит выполнять данные действия одной строчкой.
     
  2. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    мб нереально. оборачивал когда-то для этих целей последовательности, а-ля EMIT10, etc...
     
  3. Psionic

    Psionic Member

    Публикаций:
    0
    Регистрация:
    25 сен 2008
    Сообщения:
    156
    OMG
    Код (Text):
    1. #define supadupa _emit(0x90)\
    2. _emit(0x90)\
    3. _emit(0x90)\
    4. _emit(0x90)\
    5. /*екранируем обратным слешем конец строки*/
    НЕ?
     
  4. 100gold

    100gold New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2010
    Сообщения:
    165
    Код (Text):
    1. #define DOUBLE_MACRO(_X_) \
    2. _X_ \
    3. _X_
    4.  
    5. #define NOP1 \
    6. __asm nop;
    7.  
    8. #define NOP2 \
    9. DOUBLE_MACRO(NOP1)
    10.  
    11. #define NOP4 \
    12. DOUBLE_MACRO(NOP2)
    13.  
    14. #define NOP8 \
    15. DOUBLE_MACRO(NOP4)
    16.  
    17. #define NOP16 \
    18. DOUBLE_MACRO(NOP8)
    19.  
    20. #define NOP32 \
    21. DOUBLE_MACRO(NOP16)
    22.  
    23. #define NOP64 \
    24. DOUBLE_MACRO(NOP32)
    25.  
    26. #define NOP100 \
    27. NOP64 \
    28. NOP32 \
    29. NOP4
    както так можно
     
  5. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Я бы вынес эту фигню в отдельный файл и поставил include :) Если нужно переменное число, то генерил бы исходник на шаге "custom build" батничком.