sysenter::вызов

Тема в разделе "WASM.BEGINNERS", создана пользователем UTeX, 20 ноя 2007.

  1. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    Код (Text):
    1. __declspec(naked)
    2. NTSTATUS
    3. __stdcall
    4. XpZwQuerySystemInformation(
    5.                             __in ULONG SysClass,
    6.                             __inout PVOID SysInfo,
    7.                             __in    ULONG SysInfoLength,
    8.                             __out   PULONG RetLength
    9.                             )
    10. {
    11.     __asm{
    12.         mov eax, 0xAD
    13.         call FastSystemCall
    14.         retn 0x10
    15.     FastSystemCall:
    16.         mov edx, esp
    17.         sysenter
    18.     }                                  //<<< указывает сюда
    19. }
    выдает ошибку

    бок с сисэнтер?
    писать только опкод?
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    UTeX

    Похоже на то.
     
  3. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    (WORD)0x340f ?
     
  4. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    работает вроде
    странно что эта инстркукция недоступна
     
  5. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    ну дак если старый компилятор то он просто не знает этой инструкции.
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    да, я тоже сталкивался - например VC++ 6.0 не понимает сисентер. Вроде 7я студия тоже
     
  7. MagnumGT

    MagnumGT New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    122
    Там в настройках линкера кажись есть опция: Тип процессора.

    Когда устанавливаешь PentiumPro таких траблов возникать не должно.
    ИМХО

    У меня были траблы не с сисэнтером, а с ммх. Таким вот образом траблу решил.
    За сисэнтер не уверен
     
  8. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Должна быть настройка компилятора.
    Линкеру пофиг на тип процессора - он объектные модули собирает.
     
  9. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    MSVS2005
     
  10. MagnumGT

    MagnumGT New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    122
    cppasm
    да, согласен, вы правы
     
  11. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Project -> Properties -> Compile -> Advanced Compile Options -> Target CPU
    Тут какие варианты в выпадающем списке есть? (Студии 2005 нет - посмотреть не могу).
    У меня VC6 установлен, в нём максимум PPro - а для sysenter надо Pentium 2.
     
  12. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    cppasm
    посмотрел в 7 студии - там есть опция процессор только под названием "Optimize for processor"
    рискну предположить что 6я студия использует эту опцию только для оптимизации кода, а не для распознавания инструкций во встроенном ассемблере