Я попытался сделать загрузчик для своей операционной системы. Я попытался записать его на USB-накопитель с программой imageusb (из формата: img, iso и bin, ничего не работает). Затем я попытался загрузить его, но я не нашел его в меню загрузки BIOS. Я закодировал его с помощью сборки. Как я могу загрузить операционную систему с помощью моего собственного загрузчика?Как написать загрузчик моей операционной системы на USB-накопитель?
Вот часть моего кода:
[BITS 16]
[ORG 0x7C00]
JMP Main
Main:
MOV SI, Text
CALL PrintString
CALL NextLine
MOV SI, PressKeyForBoot
CALL PrintString
CALL Boot
JMP $
PrintCharacter:
MOV AH, 0x0E
MOV BH, 0x00
MOV BL, 0x07
INT 0x10
RET
NextLine:
MOV AL, 0
stosb
mov AH, 0x0E
MOV AL, 0x0D
INT 0x10
MOV AL, 0x0A
INT 0x10
ret
Boot:
CALL RebootKey
db 0x0ea
dw 0x0000
dw 0xffff
RebootKey:
mov ah, 0
int 0x16
cmp ah, 01h
jne RebootKey
PrintString:
next_character:
MOV AL, [SI]
INC SI
OR AL, AL
JZ exit_function
CALL PrintCharacter
JMP next_character
exit_function:
RET
Text db 'Loading...', 0
PressKeyForBoot db 'Press ESC key to reboot.', 0
TIMES 510 - ($ - $$) db 0
DW 0xAA55
Я использую окна, спасибо за помощь. – AsdMan
@AsdMan, в Windows вы можете пометить раздел как загрузочный с помощью утилиты ** diskpart **. Вы должны пометить раздел на вашем USB-накопителе как 'active'. –
Вам не нужно отмечать какой-либо раздел активным, если загрузочный сектор находится в первом секторе USB-накопителя, так как первый сектор находится за пределами любого раздела. На самом деле это код кода, содержащегося в первом секторе устройства, для чтения встроенной в него таблицы разделов MBR и загрузки раздела, помеченного как активная. –