Маленький вопрос по ЗР

Тема в разделе "WASM.OS.DEVEL", создана пользователем drem1lin, 31 май 2011.

  1. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    Мне понадобилось выполнять в 32х разрядном защищенном режиме код, для этого я в него перешел описав соответствующий дескриптор, а вот с возвратом в РР получился косяк, далее весь код исполнялся как 32х разрядный. Собственно вопрос такой, это я оказался в BRM? чтобы все таки вернуться в 16й реальный режим, я описал еще 1 дескриптор кода, но 16ричный, селектор на который загружал в cs перед выходом в РР, есть ли другой путь возврата в 16ричный РР?
     
  2. Toxasoft

    Toxasoft New Member

    Публикаций:
    0
    Регистрация:
    20 сен 2010
    Сообщения:
    188
    Читай на фасм статью "Прерывания в защищенном режиме", там есть "пример"...
     
  3. Toxasoft

    Toxasoft New Member

    Публикаций:
    0
    Регистрация:
    20 сен 2010
    Сообщения:
    188
    Или я дурак или вы написали бред.
    Нету
     
  4. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    Просто все читать не охота было, вопрос то маленький. я имелл в виду что я сначала загружал в cs селектор на сегмент с 16 ричным кодом, а только потом выходил в РР. Спасибо
     
  5. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Нет, вы сделали правильно.
     
  6. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    В 80286 переход в реальный режим выполнялся с помощью аппаратного сброса, но думаю, этот вариант вам не подойдет :)
     
  7. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    Врядли, спасибо) А если я не загружу этот дескриптор и выйду в РР я окажусь в BRM или еще где то?
     
  8. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Будет ошибка. В BRM сегменты тоже 16-разрядные, просто большие.
     
  9. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    Не было ошибки, код был такой
    Код (Text):
    1. ... переход из защищенного в реальный режим
    2. r_mode:
    3. mov al, 4
    4. out 80h, al
    5. mov ax, 4c00h
    6. int 21h
    7. mov al, 5
    8. out 80h, al
    и я видел 5 на POST плате, что меня и удивило
     
  10. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Только если предположить маловероятное - 32-разрядный код выполняется в реальном режиме. Тогда ты мог получить нечто подобное:
    Код (Text):
    1. mov al,4
    2. out 80h,al
    3. mov eax,21CD4C00h
    4. mov al,5
    5. out 80h,al
    Хотя я никогда не слышал, чтобы 32-разрядный код мог выполняться в реальном режиме.
     
  11. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    Код (Text):
    1. mov al,4
    2. out 80h,al
    3. mov eax,21CD4C00h
    4. mov al,5
    5. out 80h,al
    Вот я тоже пришел к такому выводу
     
  12. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Может, если перед выходом в реальный в CS будет находиться 32 битовый дескриптор кода. Я впервые это в какой-то книге прочитал, там даже с примером было, вот сейчас не нашел к сожалению. Лишь упоминание этого режима в http://en.wikipedia.org/wiki/Unreal_mode вики, называется как-то наподобие "огромный нереальный режим", хоть он и вполне работоспособен, но на практике его пользование связано с кучей траблов, в частности, что уже используется пара регистров СS:EIP для индексации текущей команды, при прерывании же в стек сохраняется CS:IP со всеми вытекающими...
     
  13. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    Вот теперь все понятно, спасибо
     
  14. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Все эти режимы кучу раз обсуждались.
    drem1lin вы тему неудачно назвали, иначе спецы давно бы уж подсказали.