просто загрузить COM программу - легко. достаточно написать функции чтения файлов из ФС. другое дело то, что эти программы будут пользоваться int 0x21 для системных вызовов и вам придётся делать свою реализацию DOS.
Ничего трудного. Возьми любой код загрузчика, да хоть от виндоуса. Прочитать про файлы COM и DOS Настраиваешь стек. Читаешь сектора при помощи int 13h. Затем настраиваешь сегментные регистры и делаешь jmp NewCS:100h. А да не забудь правильно настроить с NewCS:000h по NewCS:FFh. А вообще возьми книгу Абель АССЕМБЛЕР И ПРОГРАММИРОВАНИЕ ДЛЯ IBM PC Там расписано как загрузить COM файл.
Жи, Ши... Все верно, загружаешь com-файл как обычный бинарник с выравниванием минимум на 16-байтную границу, настраиваешь регистры ds, es, и ss с уменьшенным на 256 байт базовым адресом, обнуляешь sp и делаешь push 0, после чего передаешь управление в тот же сегмент по смещению 0x100, предварительно разместив в начале сегмента парковочный код. У меня есть нечто подобное, только не для бутсектора. Для бутсектора будет как-то так: Код (Text): org 7С00h ; здесь или дальше пишешь код загрузки com-файла по адресу 7E00h mov ax, 7D0h xor bx, bx cli mov ss, ax mov sp, bx sti push bx mov ds, ax mov es, ax jmp 7D0h:100h rb 7D00h-$ xor ax, ax mov ds, ax mov word [ds:472h], 1234h jmp 0FFFFh:0 rb 7DFEh-$ dw 0AA55h