@vitalik04

Почему не работает загрузчик ОС?

Нашел в интернете код загрузчика:
org 7C00h            ; адреса нашей программы расчитываются с учетом данной директивы
use16                    ; генерируется шестнадцатиричный код

cli                         ;запрещаем  прерывания для смены адресов в сегментных регистрах
mov ax, 0              
mov es, ax
mov ds, ax
mov ss, ax
mov sp, 7C00h
sti                         ;разрешаем прерывания (после изменения адресов)

mov ax, 0003h     ;установка видео режима для вывода строки на экран
int 10h

mov ax, 1301h     ;собственно вывод строки  функция 13h int 10h (позже будет подробнее)
mov bp, stroka     ;адрес выводимой строки
mov dx, 0000h     ;строка и колонка в которой  выводится текст
mov cx, 15           ;количество символов выводимой строки 
mov bx, 000eh     ;00-номер видео страницы (лучше не трогать) 0e-атрибуты символа(цвет,фон)
int 10h

jmp $                    ;топтаться на месте (зацикливает программу на этой точке)

stroka db 'Ok, MBR loaded!'
times 510 - ($ - $$) db 0        ;заполнение нулями промежутка между предыдущим байтом и пос-
db 0x55,0xAA                       ;последними двумя байтами


Скомпилировал в бинарник и создал iso образ. Когда запускаю в VirtualBox, на экран выводит:
FATAL: Could not read from the boot medium! System halted

Как решить проблему?
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
MegaCraZy6
@MegaCraZy6
Юзерь
Ну код правильный, так как у меня все работает, смотря как записываете, нужно в первый сектор диска. Так-же посмотрите с того ли образа загружается виртуальная машина.

Я лично решил что загрузчик делать не буду, и использую в UltraICO, фитчу "Установить загрузочным файлом", Так можно сразу писать ядро, и не бояться за пределы памяти.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы