Как разместить произвольные байтеки в коде

Тема в разделе "LANGS.C", создана пользователем a1ss, 18 сен 2008.

  1. a1ss

    a1ss New Member

    Публикаций:
    0
    Регистрация:
    18 ноя 2007
    Сообщения:
    120
    Собственно сабж. Как в сях сделать что-то типа как "db 0XXh" в асме прямо в коде. Динамическую модификацию кода не предлагать.
     
  2. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Если речь про MSVC, то
    Код (Text):
    1. __asm _emit 0xcc
     
  3. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Код (Text):
    1.     __asm {
    2.         __emit 0x90;
    3.         __emit 0xCC;
    4.         __emit 0x90;
    5.     }
    Опаздал :)
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    W4FhLF
    не всегда! если эта конструкция после ситуаций к примеру:

    Код (Text):
    1. if(hFile != INVALID_HANDLE_VALUE)
    2.   return(false);
    3.     __asm {
    4.         __emit 0x90;
    5.         __emit 0xCC;
    6.         __emit 0x90;
    7.     }
    то компиллер может подумать что раз выход, то код нахер не нужен!
     
  5. a1ss

    a1ss New Member

    Публикаций:
    0
    Регистрация:
    18 ноя 2007
    Сообщения:
    120
    EvilsInterrupt
    Ну в таких случаях, имхо, особенно если оптимизация включена, никакой код скомпилен не буит.. На асме он или нет. (првда у тебя выход то не однозначно буит)

    reverser,W4FhLF - спасибо, действительно не знал..

    з.ы. Тема закрыта.

    Теги для таких же, как я: си, ассемблер, вставка, произвольный байт, db.

    :)