снова У меня есть вопрос, который не так легко скрыть. Предположим, что BIOS загрузил мой загрузчик с назначенного устройства, как мне теперь узнать, какое устройство оно есть, чтобы я мог загрузить остальную часть моего os в ram?Как определить загрузочное устройство
ответ
Если это MBR bootstrap (И, возможно, в противном случае я не уверен на 100%?) DL
будет содержать номер диска т.е. вы можете сделать что-то вроде этого (заменить свой собственный макет памяти и так далее):
EntryPoint:
xor ax, ax
mov ss, ax
mov ds, ax
mov sp, 0x7c00
.DiskReset:
mov ah, 0
int 0x13
jc .DiskReset
mov ax, 0x50 ; load to 0x500 linear address. It has unused space up to 0x7bff
mov es, ax
xor bx, bx
mov ax, 0x023B ; count = 0x3b = 59, the maximum..
mov cx, 0x0002
xor dh, dh ; leave (dl = drive number) intact
int 0x13
jnc .ReadDone
mov si, ReadError
call PrintString16
jmp .DiskReset
.ReadDone:
; ......
There's actually a whole protocol between the firmware and the bootstrap program in sector #0. Как вы можете видеть, однако, большинство из них существует только на страницах стандартных документов, а не на самом деле. В действительности, при загрузке на старых компьютерах/AT и PC98 используется DL
для номера диска прошивки и используется поле «скрытые сектора» в BIOS Parameter Block (или, что гораздо менее желательно, «список встроенных блоков», поддерживаемый в какой-либо форме специализированного инструмента) для размещения объема внутри накопителя.
Если вы загружаете новый (по крайней мере, в мир компьютеров x86), то, конечно, тогда things are a lot different. Загрузочный загрузчик операционной системы является записью в меню диспетчера загрузки, а в записях меню диспетчера загрузок имеется система параметров, которые передаются загрузчикам программным менеджером загрузки при их запуске. Одним из параметров является расположение загрузочного тома, который использует загрузчик операционной системы для поиска файлов операционной системы. На самом деле Windows NT работает уже давно.
- 1. Загрузка загрузчика в следующее загрузочное устройство
- 2. Как определить, безопасно ли загрузочное соединение (ssl)?
- 3. Как определить используемое устройство
- 4. Как уникально определить устройство Android?
- 5. Как правильно определить Android-устройство?
- 6. Как определить загрузочное токенфилд для работы с textarea
- 7. определить устройство ipad
- 8. Как добавить загрузочное изображение
- 9. Как настроить загрузочное изображение?
- 10. Как определить смонтированное устройство как съемное?
- 11. Как определить, когда устройство USB вставлено в устройство WinCE
- 12. Как определить устройство *, которое Bluetooth-устройство вызывает трансляцию ACTION_ACL_CONNECTED?
- 13. Как определить текущее устройство Android Tablet?
- 14. Как определить устройство iOS для нескольких приложений?
- 15. Как определить, подключено ли устройство Bluetooth
- 16. Как определить, имеет ли устройство Android Accelerometer?
- 17. Как определить вызывающий источник/устройство из webapi?
- 18. Как определить физическое устройство Android от затмения?
- 19. Как определить корпоративное устройство iOS из приложения?
- 20. Как определить, поддерживает ли устройство 4G?
- 21. Как определить примитивное устройство в Proteus?
- 22. Как определить устройство FTDI в использовании?
- 23. Как определить устройство интерфейса ADB в окнах?
- 24. Как определить, какое пользовательское устройство Android использует?
- 25. Как определить, когда устройство добавлено в систему?
- 26. Как определить устройство, работающее в симуляторе?
- 27. Как определить, является ли устройство iPad?
- 28. Как определить, какой IP-диапазон использует устройство?
- 29. Как определить, когда USB-устройство подключено/отключено?
- 30. Как определить, какое устройство & os версия симулятора?
thx много чувак. Я никогда не знал, что это значение в DL означает. – Pyjong