![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
А вот так хотелось со своего загрузчика начать.
Или можно вначале использовать GRUB, а потом написать свой, когда опыт будет? |
![]() |
![]() |
![]() |
#22 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
Всё получилось. Вылетело #GP и напечатался текст.
boot.asm Код:
Код:
|
![]() |
![]() |
![]() |
#23 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
что-то перемудрил ты..
Куда ты скопировал второй сектор? Там-же нужно указывать в BX, и по окончании передать на ВХ управление. Где-то глюк притаился. ИМХО. Когда-то я сюда выкладывал свои эксперементы с загрузчиком, но что-то не нашёл тему поиском. Грузился флопом, в нулевой сектор которого кидал загрузчик, а в первый сектор - саму ось. Загрузчик подгружал ось по адресу 0:600h, куда и передавал управление. Записывал на дискету через винду кекс-редактором HxD. Сохранился исходник на FASM'e: Код:
Код:
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 26.08.2017 в 10:46. |
![]() |
![]() |
![]() |
#24 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
..э-э забыл. Нужно вставить в хвост загрузчика сигнатуру 55ААh
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#25 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
А есть отличия SSD и HDD в прерывании int 13h
|
![]() |
![]() |
![]() |
#26 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
Если разметка диска CHS (под досом), то обычный сервис с fn. AH=0..18h
Если разметка LBA, то расширенный сервис с номерами AH=41..52h Все современные диски эмулируют CHS, поэтому для загрузчиков хватает и обычного сервиса
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 26.08.2017 в 11:19. |
![]() |
![]() |
![]() |
#27 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 296
|
![]()
Разницы нет между FDD, HDD, SSD. Разве что номер Floppy < 80h, а HDD/SSD >= 80h.
При загрузке MBS (MBR-сектора) DL уже содержит номер диска, с которого грузится.
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
![]() |
![]() |
![]() |
#28 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
R71MT, Ваш код не работает. Не грузит сектор))
И почему вы грузитесь на адрес 600h Если загрузились до этого на адрес 07C00h? Последний раз редактировалось Nikolay2015; 26.08.2017 в 12:17. |
![]() |
![]() |
![]() |
#29 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
Алгоритм загрузки компа такой..
После процедуры POST, BIOS передаёт управление по адресу 0:7C00h. Чтобы загрузить ОС, должен быть загрузчик в задачи которого входит поиск активного\загрузочного раздела на носителях по сигнатуре 55ААh. Если таковая сигнатура имеется в хвосте сектора, то код этого сектора выполняется. Всё, что нужно от программиста - это расположить свой код по адресу 0:7С00h и ждать, пока BIOS не обратится к нему. Получив управление от BIOS, можно подгружать остальной код ОС, в любой из следующих адресов: Код:
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#30 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
Я скомпилил весь код, только номер сектора поменял на 1. Через ульта ISO создал самозагружаемый образ. И запустил на виртуалке. Пишу большую L. На экране высвечивается ERROR
PS. в конце загрузочного сектора поставил 0x55aa |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прерывания | kolyan147 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 13.06.2012 23:55 |
прерывания | lilek | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 14.12.2010 20:44 |
Прерывания | alexdrew | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 16.05.2010 00:38 |
Прерывания | Kn793 | Общие вопросы Delphi | 3 | 10.01.2009 18:43 |