Я выполнял проект hello world для запуска на своем физическом компьютере с архитектурой x86, но код не запустился (загрузился), и машина перешла к следующему загрузочному устройству, я написал код в сборке, следующие шаги было то, что я сделал:
шаг 1: код для отображения символов A abd B от B ios вызывает
.L1 :
mov %ah,0x0E
mov %bh,0x00
mov %bl,0x07
mov %al,65
INT $0x10
mov %ah,0x0E
mov %bh,0x00
mov %bl,0x07
mov %al,66
INT $0x10
jmp .L1
шаг 2:
сборка кода и создание кода в двоичном формате:
as -o Code Code.txt
objcopy -O binary Code binfile
шаг 3:
открывает HxD и отображает двоичную форму кода сборки и дополняет его нулями до последних двух байтов первых 512 байт, в который я добавил их 55AA (в шестнадцатеричном формате), чтобы он выглядел следующим образом:
шаг 4:
скопировал изображение в fla sh memory:
dd bs=512 count=1 if=binfile of="\\.\e:"
(Примечание: я использую dd на windows)
Примечание: полагалось на то, что bootstrap код в первом секторе покажет два символа, которые не использовали, и дальнейший загрузчик, потому что это мой первый проект oi удалось сохранить его простым.
Главы не отображаются, и отображается сообщение о недопустимом загрузочном устройстве, устройство переходит к следующему устройству и загружается windows нормально ... что я здесь не хватает?