| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > считать в память сектор жёсткого диска |
| Автор: jah2 9.1.2015, 12:13 |
| Здравствуйте! Какими командами в первом секторе жёсткого диска считать, скажем, второй сектор жёсткого диска в оперативную память и передать управление на эти команды? Если я правильно понимаю, в конец первого сектора придётся дополнительно записать 55 AA, а с жёсткого диска считывание идёт секторами. Спасибо! |
| Автор: _zorn_ 9.1.2015, 12:36 |
| Бери winex, дампь MBR и иследуй в ИДА например. |
| Автор: jah2 9.1.2015, 19:57 |
спасибо за ответ, а напрямую можно подсказать, вроде бы это вопрос по основам, даже не представляю как исследовать, понимаю только, что должны быть некие команды, которые считывают этот сектор в память, а дальше начинается их чтение из памяти и исполнение если бы привели хотя бы названия этих команд, сильно бы помогло в поисках |
| Автор: ФедосеевПавел 9.1.2015, 20:58 |
| Думаю, что чтение секторов во время загрузки (т.е. в отсутствии ОС) выполняется прерываниями BIOS - int 13h. Передача управления - jmp far. А чтение одного (начального) загрузочного сектора - автоматически средствами BIOS. Дальнейшая подгрузка - тем кодом, что загрузился ранее (int13h, jmp/call). На днях попадалась http://biosprog.narod.ru/real/ints/int.htm с описаниями прерываний, но описания от Ральфа Брауна, конечно, предпочтительнее. Примеры загрузчиков - даже описаний - можно поискать в сети. Особенно на сайтах ассемблерной направленности (например, wasm.ru - там в архиве статей есть и что-то о начальной загрузке). В разделах FAQ и "Исходники" многих форумов есть примеры (http://sources.codenet.ru/?cid=3). PS Прошу прощения за то, что не смог ответить на твой вопрос - сам некомпетентен - но ты спрашивал о возможности чтения сектора, а это вроде бы совсем просто. |