Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 985
от 23.02.2008, 20:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 357, Экспертов: 13
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 123576: Здравствуйте! У меня такой вопрос. Сделал дизассемблер своей MBR (у меня Windows XP SP2). Не совсем понятно одно место, а именно поиск активного раздела. В строке 0020 флаг активности ( как число со знаком) сравнивается с содержимым регистра ch (там...

Вопрос № 123.576
Здравствуйте! У меня такой вопрос. Сделал дизассемблер своей MBR (у меня Windows XP SP2). Не совсем понятно одно место, а именно поиск активного раздела. В строке 0020 флаг активности ( как число со знаком) сравнивается с содержимым регистра ch (там 00) и ,"если меньше", в следующей строке делается переход на часть программы, которая проверяет, единственный ли это активный раздел и, если да, то загрузку первого сектора этого раздела. То есть, переход на загрузку активного раздела произойдёт если флаг активности будет числом в интервале 80h-FFh(если эти числа рассматривать как числа со знаком, то это отрицательные числа, т.е.<0).
Как-то скачал с инета файл .asm стандартной MBR. Там это место выглядит по другому. Флаг активности сравнивается конкретно с 80h.
В то же время числа 80h-FFh используются как номера физических жёстких дисков. В частности, при загрузке активного раздела, флаг активности помещается в регистр DL, именно, как номер физического HDD, с которого будет производиться загрузка ОС.
Почему в моей MBR поиск активного раздела организован таким образом(не как в стандартной MBR)?

Приложение:

Отправлен: 17.02.2008, 20:16
Вопрос задала: Alsav22 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Alsav22!
Как мне кажется, дело в том, что используется только значение 80h! Остальные коды 81h-ffh зарезервированы
Поэтому все равно, как его проверять или на совпадение, или на <0...

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 18.02.2008, 10:23
Оценка за ответ: 5

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Alsav22!

Формат MBR (выделено: в скобках смещение от начала сектора и размер поля)
(+0) 1BEh Загрузочная запись - программа, которая загружается
и выполняется во время начальной загрузки операционной системы;
(+1BEh) 10H Элемент таблицы разделов диска (структру см. ниже);
(+1CEh) 10H Элемент таблицы разделов диска;
(+1DEh) 10H Элемент таблицы разделов диска;
(+1EEh) 10H Элемент таблицы разделов диска;
(+1FEh) 2 Признак таблицы разделов - 55AAh.

Элементы таблицы разделов диска
(+0) 1 Признак активного раздела:( 0 - раздел не активный; 80h - раздел активный.);
(+1) 1 Номер головки для начального сектора раздела;
(+2) 2 Номер сектора и цилиндра для начального сектора раздела в формате функции чтения сектора INT_13h;
(+4) 1 Код системы:( 0 - неизвестная система; 1, 4 - DOS; 5 - расширенный раздел DOS.);
(+5) 1 Номер головки для последнего сектора раздела;
(+6) 2 Номер сектора и цилиндра для последнего сектора раздела в формате функции чтения сектора INT_13h;
(+8) 4 Относительный номер сектора начала раздела;
(+12) 4 Размер раздела в секторах.

Теперь о Вашем MBR:
:0001.01BE 80 01 0100 06 FE 3FC0 3F000000 424F2F00
:0001.01CE 00 00 01C1 0F FE FFFF 814F2F00 40952109
Всё на месте. Вы просто не там искали.
Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 18.02.2008, 12:35
Оценка за ответ: 1
Комментарий оценки:
Разве я что-то где-то искал? Вопрос был о другом.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное