Я пытался записать загрузчик на языке ассемблера на USB-накопитель, чтобы протестировать его на другом компьютере. Загрузчик (должен) работать с процессорами Intel. Компьютер, на котором я тестирую его (Windows 7 с Intel Celeron и 2 ГБ ОЗУ) должен быть запущен, на нем даже есть возможность загрузки с USB-накопителя в BIOS (и он обнаруживает накопитель). Когда я запускаю загрузку с диска, он загружается в Windows. Он должен отображать мою пользовательскую ОС, которая в основном является просто программой сборки типа Hello-World. Я предполагаю, что это потому, что он не мог найти операционную систему: либо OS-тег (который я обнаружил, должен быть "dw 0xAA55") не является правильным, USB-накопитель не является загрузочным, или я просто не помещаю bin файл загрузчика в первом секторе.
Мои вопросы: Как я могу проверить, (а) способен ли USB-накопитель загружать ОС, (б) распознается ли ОС, и (в) находится ли файл bin в правильном секторе (первый сектор) ,
Вот код сборки:
org 7C00h
jmp 0x0:start
start:
cli
mov ax, 0x9000 ;Set up stack
mov ss, ax ;Tell processor where stack is
mov sp, 0xFB00 ;Set stack offset
sti
mov AH, 0Eh ;Tell bios we're writing a char to screen!
mov AL, 'T' ;Load a new character into memory
int 10h ;Call BIOS video interrupt
jmp start ;And so on and so on
times 510-($-$$) db 0 ;Fill rest of sector up with 0s to make this 512B (a sector)
dw 0xAA55 ;Let BIOS know this is an OS! (defines a word)
Я довольно новичок в сборке, поэтому, если комментарии после некоторых строк не совпадают с тем, что они должны быть, то это, вероятно, почему. Спасибо за вашу помощь!