Вопрос № 21485: Здравствуйте, уважаемые эксперты
Преподом поставлено задание: перевести процессор в зацищенный режим, что и сделано с помощью книги Юрова.
Возникшие вопросы:
1) Что значит
mov al,80h / mov al,0
out 70h,al
при запрете / разре...
Вопрос № 21.485
Здравствуйте, уважаемые эксперты
Преподом поставлено задание: перевести процессор в зацищенный режим, что и сделано с помощью книги Юрова.
Возникшие вопросы:
1) Что значит
mov al,80h / mov al,0
out 70h,al
при запрете / разрешении прерываний?
2) Часть задания дословно сформулирована так: "В защищенном режиме работать с данными(строкой) за пределами 1М, затем в реальном показать, что к ним можно обращаться". Я это понял как: по адресу 1М скопировать строку, потом в реальном режиме её вывести как DS=0FFFFh; dx=10h; ah=9; int21h. Что и не работает (строка выводится явно не та).
Мой код в примере помечен как ";!!! above_1M". С остальным всё нормально.
Смутно догадываюсь, что виноват может быть "заворот адресов" выше 1М в реальном режиме, но в биосе такой опции не нашёл.
Приложение:
Отправлен: 29.05.2005, 12:14
Вопрос задала: wr154 (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: Евгений Иванов
Здравствуйте, wr154!
в реальном ты ну никак не выйдешь за пределы 1 Мб более, чем на 65535-16 байт.
но для этого нужно включить управление 20 адресной шиной памяти в BIOS.
обычно это работает.
конечно, выводит кашу, потому что ты записываешь атрибуты. если они в функции 9 не используются и будут приняты за мусор. исправь. записывай только символы и в конце доллар. всё.
удачи!
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 30.05.2005, 00:41 Оценка за ответ: 3 Комментарий оценки: Ну, с первым вопросом так ничего и не понятно. Во втором 1 баг нашёл, но без него не легче - судя по всему, писать данные в защ. режиме по указанным адресам (даже ниже 1М на 16,32б) проц вообще не собирается - в реальном режиме по этим адресам так и остаётся служебная информация