Много ошибок... - не инициализирован контроллер прерываний (просто так взять и послать отдельное инициализационное слово в PIC нельзя); -...
MisHel64, я не знаю, как и что именно у тебя работало. Сначала ты говорил, что у тебя есть (тебе нужен?) образ, который не нужно модифицировать...
Вообще интересно, что "простой" MBR-загрузчик будет искать по конкретному адресу? Первый сектор первичного загрузчика? Так он его может загрузить...
Я? Это нормальное поведение BIOS. Просто я не стал ждать, пока BIOS вырубит движок, а сделал это сам.
А вот GRUB, Lilo и т.п. не парятся по поводу дефрагментации. Они работают по принципу "Сам дурак!" Хотя конечно это большой минус в используемом...
Это мелочь. Мне не понравилось, что в боксе оставался гореть индикатор дисковода. Правильно, только там было много лишнего. Это тоже мелочь. Это...
Открытие A20 опущено в виду громоздкости кода и ненадобности в данной ситуации.
Мой вариант: xor ax,ax cli mov ss,ax xor sp,sp sti jmp 1000h:@f ; при необходимости @@: mov ax,1000h mov ds,ax ; push cs/pop ds...
Я думаю, что для надежности лучше все используемые регистры повторно проинициализировать в "ядре", а передаваемые "ядру" в регистрах параметры,...
GDT_size equ $-GDT Лучше так не делать! В fasm'е equ делает символьные ссылки. Тебе повезло, что ты это написал там, где написал, иначе бы...
Посмотрел... пока что такие замечания: - dl лучше сохранять перед обращением к любой функции BIOS; - думаю, отсутствие активного раздела - это...
У флешки совсем другой интерфейс. См. документацию на UHCI/EHCI, а также описание интерфейса взаимодействия с соответствующим классом устройств.
Да, корректируем внутрисегментный адрес, чтобы получился линейный. 1000h*10h - это "настоящий" (линейный) адрес начала сегмента. К нему прибавляем...
Это не тупость, а скорее просто неготовность к продуктивному общению по данной теме. Предлагаю тебе самому докопаться до ответа хотя бы на...
Это возврат к линейной адресации для метки PROTECTED_ENTRY и всего, что идет за ней, которую ты успешно нарушил, передав управление на 1000h:0 в...
У меня ненормальный загрузчик ))) А вообще где, например, у GRUB'а в stage 1 находится сигнатура? Что-то не припоминаю, чтобы там было что-то...
Чужой код "официально" декомпилировать/дисассемблировать нельзя, если на то нет специального разрешения ))) А в своих исходниках я не всегда...
А вообще в ядре лучше сделать повторную настройку всех регистров.
Не заметил. Ну тогда как-то так: ; org 0 ... lgdt [GDTR] ... GDTR: dw GDT_SIZE-1 dd GDT+10000h ... org $+10000h PROTECTED_ENTRY:
Если адрес загрузки фиксирован, то можешь сделать примерно так, как у меня: org 8000h ... lgdt [GDTR] ... GDTR: dw GDT_SIZE-1 dd GDT...
Имена участников (разделяйте запятой).