Все правильно, в fasm'е (насколько помню, ТС использует именно его) в 16-разрядном коде можно написать jmp fword (или pword) selector:offset32.
Заметил такой код:
Код:
rep movsb
jmp 8000h
На загруженный/перемещенный код всегда нужно выполнять дальний переход, т.е. jmp 0:8000h.
Если переход на ядро выполняется по адресу KERNEL_SEG:0, в ядре нужно написать "org 0" (или вообще не использовать эту директиву). Или выполнять переход на ядро по адресу 0:1000h. Или в начале ядра сделать что-то типа jmp 0:@f/@@: Я использую последний вариант, т.е. моему ядру практически пофиг, каково значение cs на входе - оно само установит нужное.