Я создаю базовый MBR, который читает таблицу разделов и загружает первый сектор загрузочного раздела. Меня путают режимы адресации CHS и LBA. Я прочитал в учебнике, что CHS более или менее не используется, за исключением соображений совместимости. Итак, я решил использовать LBA (INT 13h расширения). Чтобы загрузить сектор диска, я должен прочитать значение CHS из таблицы раздела этого раздела. Только тогда я смог бы преобразовать его в LBA и сохранить его в «Disk Address Packet».Как получить доступ к информации CHS из таблицы разделов MBR?
Мое сомнение в том, что CHS в таблице разделов составляет по 1 байт. Должен ли я принимать это значение напрямую и превратить его в LBA (или) я должен сначала преобразовать его в,
Cylinder = 10 bits
Sector = 6 bits
Head = 8 bits
, а затем преобразовать его в LBA?
Примечание. Мой MBR должен иметь доступ к секторам как на HDD, так и на USB - это мотив.
ОС: Ubuntu
Assembler: Газ
Да, вам нужно сделать 10 бит/6 бит вещь. См. [Osdev wiki] (http://wiki.osdev.org/Partition_Table). – Jester
Опять же, окончательный CHS будет 1 байт каждый ri8? –