|
|
|
))) из защищённого режима в реальный... MASM
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Вопросик небольшой, просто не знаю где искать на него ответ. Дело в том, что при возвращении из защищённого режима в реальный, селектор записанный в регистре ds должен указывать на сегмент (точнее на дескриптор, который указывает на этот сегмент) в котором разрешена запись данных ... Иначе (если таковая запрещена) комп просто зависает... Происходит это на команде записи регистра cr0. Значит вопрос: Почему так происходит? Проблемы это не создаёт (ведь несложно добавить в глобальную таблицу дескрипторов ещё один дескриптор), но просто интресно, что процессор делает при смене флага PE, и какую роль при этом играет сегистр ds, и есть ли ещё какие-нибуть особенности возвращение процессора в реальный режим (типа специального значения регистров и т.д.)? Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 22:11 |
|
||
|
))) из защищённого режима в реальный... MASM
|
|||
|---|---|---|---|
|
#18+
Подскажите хоть какие-то предположения пожалуйста, или отправьте почитать что-то (всмысле по данной теме)... может докладнее надо что-нибуть описать? Просто мне очень интересно что это такое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 00:26 |
|
||
|
))) из защищённого режима в реальный... MASM
|
|||
|---|---|---|---|
|
#18+
Комп зависает? Ужас какой! Знаешь... телепаты ушли спать, а я только по исходникам советы даю. Вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 00:43 |
|
||
|
))) из защищённого режима в реальный... MASM
|
|||
|---|---|---|---|
|
#18+
хм... исходники )) ща выложу... минуту (просто с другого компа достать надо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 02:42 |
|
||
|
))) из защищённого режима в реальный... MASM
|
|||
|---|---|---|---|
|
#18+
Извиняюсь что такой длинный и может даже местами бесполезный код )) Одним словом новичёк :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. Код: plaintext 1. Заранее благодарен за ответы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 03:14 |
|
||
|
))) из защищённого режима в реальный... MASM
|
|||
|---|---|---|---|
|
#18+
http://sasm.narod.ru/docs/pm/pm_in/chap_10.htmДля корректного перехода из P-Mode в R-Mode необходимо подготовить процессор следующим образом: 1. Запретить прерывания (CLI). 2. Передать управление в читаемый сегмент кода, имеющий предел в 64Кб (FFFFh). 3. Загрузить в SS, DS, ES, FS и GS селекторы дескрипторов, имеющих следующие параметры: Предел = 64 Кб (FFFFh) Байтная гранулярность (G = 0) Расширяется вверх (E = 0) Записываемый (W = 1) Присутствующий (P = 1) Базовый адрес = любое значение Сегментные регистры должны быть загружены ненулевыми селекторами. Те сегментные регистры, в которые не будут загружены описанные выше значения, будут использоваться с атрибутами, установленными в защищённом режиме. 4. Сбросить флаг PE в CR0. 5. Выполнить команду far jmp на программу режима реальных адресов. 6. Загрузить в регистры SS, DS, ES, FS и GS необходимые значения или 0. 7. Разрешить прерывания (STI). Думаю тут я смогу найти что-нибуть по своему вопросу (покрайней мере тут указаны требования к значениям регистров при возврате в RM) Спасибо всем ( ) за участвие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 00:14 |
|
||
|
|

start [/forum/topic.php?fid=16&tid=1345275]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 458ms |

| 0 / 0 |
