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

Discussion in 'WASM.OS.DEVEL' started by drem1lin, May 31, 2011.

  1. drem1lin

    drem1lin Member

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

    Toxasoft New Member

    Blog Posts:
    0
    Joined:
    Sep 20, 2010
    Messages:
    188
    Читай на фасм статью "Прерывания в защищенном режиме", там есть "пример"...
     
  3. Toxasoft

    Toxasoft New Member

    Blog Posts:
    0
    Joined:
    Sep 20, 2010
    Messages:
    188
    Или я дурак или вы написали бред.
    Нету
     
  4. drem1lin

    drem1lin Member

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

    Phantom_84 New Member

    Blog Posts:
    0
    Joined:
    Jun 6, 2007
    Messages:
    820
    Нет, вы сделали правильно.
     
  6. Phantom_84

    Phantom_84 New Member

    Blog Posts:
    0
    Joined:
    Jun 6, 2007
    Messages:
    820
    В 80286 переход в реальный режим выполнялся с помощью аппаратного сброса, но думаю, этот вариант вам не подойдет :)
     
  7. drem1lin

    drem1lin Member

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

    Phantom_84 New Member

    Blog Posts:
    0
    Joined:
    Jun 6, 2007
    Messages:
    820
    Будет ошибка. В BRM сегменты тоже 16-разрядные, просто большие.
     
  9. drem1lin

    drem1lin Member

    Blog Posts:
    0
    Joined:
    Mar 17, 2009
    Messages:
    300
    Не было ошибки, код был такой
    Code (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

    Blog Posts:
    0
    Joined:
    Jun 6, 2007
    Messages:
    820
    Только если предположить маловероятное - 32-разрядный код выполняется в реальном режиме. Тогда ты мог получить нечто подобное:
    Code (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

    Blog Posts:
    0
    Joined:
    Mar 17, 2009
    Messages:
    300
    Code (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

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

    drem1lin Member

    Blog Posts:
    0
    Joined:
    Mar 17, 2009
    Messages:
    300
    Вот теперь все понятно, спасибо
     
  14. valterg

    valterg Active Member

    Blog Posts:
    0
    Joined:
    Aug 19, 2004
    Messages:
    2,105
    Все эти режимы кучу раз обсуждались.
    drem1lin вы тему неудачно назвали, иначе спецы давно бы уж подсказали.