Сохранение контекста

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

  1. SysProger

    SysProger New Member

    Публикаций:
    0
    Существует ли функция в turbo c++, которая сохраняет/восстанавливает регистры и флаги не в стеке, а в локальной переменной?
     
  2. censored

    censored New Member

    Публикаций:
    0
    А локальная переменная разве не в стеке?
     
  3. SysProger

    SysProger New Member

    Публикаций:
    0
    так локальная переменная может находиться не на вершине стека.
     
  4. Ursus

    Ursus Member

    Публикаций:
    0
    Аффтар, сформулируй точнее, чего надо.
    Локальные переменные ВСЕГДА располагаются в стеке (регистровые не в счет).

    Как я понял, GetThreadContext()/SetThreadContext() - то, что тебе нужно.
     
  5. SysProger

    SysProger New Member

    Публикаций:
    0
    GetThreadContext()/SetThreadContext() - WinAPI. А мне нужно написать программу в DOS :) Читай внимательнее тему. Проблема такая:
    Код (Text):
    1. asm
    2. {
    3.     mov ax,1
    4. }
    Error: Undefined symbol mov

    А насчёт стека я просто хотел узнать, есть ли функция, которая помещает контекст в _указанное_ место стека, т.е. в локальную переменную, а не на вершину.
     
  6. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    а как узнать где подходящее "место стека"?
     
  7. SysProger

    SysProger New Member

    Публикаций:
    0
    это моё дело
     
  8. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    перефразирую, как ты собираешься это место указывать? esp+xx? 0xXXXX?
     
  9. SysProger

    SysProger New Member

    Публикаций:
    0
    нет, просто укажу, в какую переменную сохранять. Да это не так уж и важно. Скажите лучше, что делать с ошибкой "Undefined symbol 'mov'"? Что-то нет ответов, может отдельную тему создать?
     
  10. DEEP

    DEEP Андрей

    Публикаций:
    0
    SysProger
    Мне сильно подозрительственно, что Вам нужно юзать вот такие операторные скобки:

    Код (Text):
    1. __asm
    2. {
    3. }
     
  11. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    чтобы тогда не написать на асме чтото вроде

    lea eax,[buf]
    xchg esp,eax
    pusha
    pushf
    xchg esp,eax
     
  12. J0E

    J0E New Member

    Публикаций:
    0
    setjmp
     
  13. ECk

    ECk Member

    Публикаций:
    0
    AddressOfReturnAddress - intrinsic function - рулёзная вещь между прочим