Есть свой собственный загрузчик, но он почему-то не работает на материнской плате с UEFI (Intel DH77EB), MBR не выдаёт никаких сообщений, на материнских платах с обычным BIOS всё нормально. MBR записываю на флешку, UEFI Boot выключен.
Код начала загрузчика (BOOTSTACK=0xFFF0, BOOTSEG=0x1000):
        .set SIGNATURE,0xaa55
        .set LOAD,0x7c00        # Load address
        .code16
        .text
        .globl start            # Entry point
start:
         jmp    main
        .= start +3 
oem :.ascii "oc2k 210"
secsiz  :.word  0
clsiz   :.byte  0
ressecs :.word  0
fatcnt  :.byte  0
rootsiz :.word  0
totsec  :.word  0
media   :.byte  0
fatsiz  :.word  0
trksecs :.word  0
headcnt :.byte  0   #?????????????????
hidnsec :.word  0
# нестандартные расширения 
        .= start +52
fsec:   .word 0        # первый сектор                  52
        .word 0        #                    
spc :   .word 0        # spt*headcnt                    56
        .word 0        #                        
spt :   .word 0        #                                60
        .word 0        #                        
fsec0:  .word 0        # первый сектор                  64
        .word 0        #                    
drive:  .byte 0        # номер диска например 0x80      68
head:   .byte 0        #                                69
cyl :   .word 0        #                                70
nsec:   .word 0        #                                72
        .word 0        #                                74
startmsg:.ascii "Start \0"  #        80
okmsg:.ascii "Ok \r\n\0"  #        
main:   
    
    movw    $BOOTSEG, %ax           #  ax=0x1000 
    movw    %ax, %es                # es=ax=0x1000 set up %es, (where we will load boot2 to)
    movw    %ax, %ss                # ss=0x1000  
    movw    $BOOTSTACK-64, %sp      # sp=0xfff0-64
    movw    $(LOAD/16),%ax        
    movw    %ax,%ds                 #  data  ds=0x7c0
    movw    $startmsg, %si
    call    message
На материнской плате с UEFI сообщение не выводится.
Или, вот, для примера, MBR, который выводит «Hello World», записываю его на флешку напрямую командой dd, на материнской плате с BIOS работает, а с UEFI — нет.
В чём отличия между настоящим BIOS и эмуляцией BIOS в UEFI?



