Насколько я знаю, начиная с 16-ого байта от конца должна быть инструкция EA адрес...
то есть jmp адрес
А у меня её нет.
1. Необязательно это должен быть jmp (т.е. можно извратиться кучей других способов для передачи управления в нужную точку), хотя обычно производители не страдают извращениями.
2. Необязательно jmp будет первой же инструкцией по 0xFFFF:0xFFF0.
3. Необязательно код операции jmp будет равен 0xEA.
4.
loc_FFF0:
wbinvd
jmp loc_FF28
loc_FF28:
cli
mov al, 1
out 80h, al
mov ax, 0F000h
mov ds, ax
mov si, 0FFF0h
cmp byte ptr [si], 0EAh
jnz short loc_FF3F
jmp far ptr 0F000h:0E05Bh
loc_FF3F:
mov al, 2
out 80h, al
db 66h
lgdt qword ptr cs:0FFB8h
mov eax, cr0
or al, 1
mov cr0, eax
cld
mov ax, 8
mov ds, ax
mov es, ax
mov ss, ax
mov fs, ax
mov gs, ax
jmp large far ptr 10h:0FFFFFC9Fh
2. Необязательно jmp будет первой же инструкцией по 0xFFFF:0xFFF0.
3. Необязательно код операции jmp будет равен 0xEA.
4. Т.е. bootblock у вас вполне адекватный.