Answer the question
In order to leave comments, you need to log in
Why is the OS bootloader not working?
I found the bootloader code on the Internet:
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 ;последними двумя байтами
Answer the question
In order to leave comments, you need to log in
Well, the code is correct, since everything works for me, depending on how you write, you need to go to the first sector of the disk. Also, see if the virtual machine is booting from the same image.
I personally decided that I would not make a bootloader, and I use the "Install as a boot file" feature in UltraICO, so you can immediately write the kernel, and not be afraid of running out of memory.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question