А зачем far jump? У меня и так уже включён защищённый режим просто без страничной адресации
с книжки скопипастил
Первая инструкция защищённого режима должна быть инструкцией загрузки в регистр cs селектора сегмента кода и обновления EIP. Это должна быть инструкция дальней передачи управления. Единственная инструкция, которая может выполнить загрузку непосредственного значения в регистр CS, это команда
jmp <селектор> : <смещение>
Но почему именно JMP, почему нельзя использовать другие команды для перехода CALL или RET? Потому что команда CALL использует стек для сохранения адреса следующей инструкции, а поскольку в сегментном регистре стека у нас стоит всё ещё старый номер сегмента стека, будет сгенерировано исключение общей защиты и, конечно же, процессор «зависнет». Команда RET вообще не подходит, т. к. для её использования адрес перехода должен содержаться в стеке, а стек у нас не определён.