Я пишу загрузчик и ядро для себя, и оба загрузчика и ядро будут записаны на CD-R и будут функционировать как CD-live. Это не linux CD-Live или что-то еще, это полностью мой собственный загрузчик и ядро. Я не хочу использовать другие загрузчики (например, GRUB), поэтому, пожалуйста, не предлагайте мне их использовать.
Вот мой вопрос:
В коде моего загрузчика ASM я хочу загрузить свое ядро и запись ядра в RAM с CD-ROM (не с жесткого диска или дискеты) и предположить, что мы знаем, где именно находится ядро. CD-ROM (номер сектора).
Насколько я знаю, я должен использовать int 0x13, AH = 02h, который будет считывать секторы из Drive в RAM.
Чтобы использовать этот сервис прерываний, я должен установить пару регистров, которые я перечислю ниже:
Параметры:
AH 02h
AL Секторы для чтения Count
CX Track + Sector / См. Замечание
Глава DH
DL Drive
ES: BX Buffer Address Pointer
Моя проблема связана с DL и DH. Чтобы указать 1-й жесткий диск для чтения, мы можем установить его на 80h или, для дискеты, установить 00h. Но я хочу читать с CD-ROM и не знаю, какие значения я должен использовать для DH и DL.
Чтобы считывать с CD-ROM пару секторов в ОЗУ это правильное прерывание (int 0x13)? если да, какое значение я должен указать для DH и DL.
С уважением,
Pooria.