разница не велика. просто изменить в преобразовании номера сектора из LBA в CHS количество головок и секторов на дорожке. Плюс можно использовать расширенный дисковый сервис BIOS. А вообще вот вам: функция загрузка сектора с диска с использованием расширенного сервиса: Код (Text): ; Загрузка сектора EAX в буфер ES:BX (используется LBA) load_sector_lba: virtual at $$ - 0x200 ; Можно заменить на любой другой свободный адрес памяти .dap: .dap_size db ? .dap_reserved_1 db ? .dap_count db ? .dap_reserved_2 db ? .dap_segment dw ? .dap_offset dw ? .dap_sector_index dq ? .sizeof.dap = $ - $$ end virtual push edx si mov [.dap_size], .sizeof.dap mov [.dap_count], 1 xor edx, edx mov dword[.dap_sector_index], eax mov dword[.dap_sector_index + 4], edx mov ax, es mov [.dap_segment], ax mov [.dap_offset], bx xor al, al mov [.dap_reserved_1], al mov [.dap_reserved_2], al mov ah, 0x42 mov si, .dap mov dl, [disk_id] int 0x13 jc disk_error pop si edx bp ret При старте начального загрузчика надо сохранить значение DL переданное BIOS в переменную disk_id. Если вы хоть немного разбираетесь в вопросе, то знаете куда эту процедуру надо воткнуть в загрузчике с дискеты. Если вас интересует загрузка без использования расширенного диска, то вот: Код (Text): ; Загрузка сектора AX в буфер ES:BX (используется CHS) load_sector_chs: push ax cx dx si xor dx, dx div [spt] mov cl, dl inc cl div [head_count] mov dh, ah mov ch, al mov dl, [disk_id] mov si, 3 mov al, 1 @@: mov ah, 2 int 0x13 jnc @f xor ah, ah int 0x13 dec si jnz @b jmp disk_error @@: pop si dx cx ax ret ... ; Определение параметров загрузочного диска для адресации CHS. Нужно делать до функции загрузки push es mov ah, 8 mov dl, [disk_id] int 0x13 and cl, 00111111b xor ch, ch mov [spt], cx inc dh mov [head_count], dh pop es Если же хочется совсем готового примера, то посмотрите в сторону KolibriOS. У неё есть загрузчик с жёсткого диска в FAT32. Разумеется, с исходниками.
посмотри исходники kolibri или menuet. а так разницы особой нет, просто номер диска другой. и управление передает не биос а mbr.