Вот лишний повод впасть в заблуждение
; simpinit.asm
; Пример кода инициализации для простой плоской (линейной) модели
;
; ***************************************************************
;
; Версия 2.0
; Авторские права Intel Corp., 1988
; Данный  шаблон  должен  помочь  вам  при  разработке  прикладных/
; системных программных средств с использованием микропроцессоров
; семейства Intel i486 (TM) или Intel386(TM). Intel дает вам
; разрешение на любые   модификации   и   использование   данных
; шаблонов по необходимости.
;
***************************************************************
;
; Это  пример  кода  инициализации,  который  переводит процессоры
; i486, 386 DX, 386 SX или 376 в режим плоской модели адресации.
; Вся память рассматривается как простая линейная область RAM.
; Подпрограмм прерывания нет. Построитель создает алиас GDT и
; алиас IDT и помещает их по умолчанию в GDT[1] и GDT[2].
; После входа в защищенный режим данный код выполняет переход к
; подпрограмме начальных действий для прикладной программы на Си.
; Вы  можете  изменить  адрес  перехода  (команды  JMP) на   ваш
; собственный код или сделать в вашем коде метку C_STARTUP.
NAME simpstart           ; имя объектного модуля
EXTERN c_startup:near    ; это метка перехода после init_code
pe_flag     equ 1        ; для установки бита PE
data_selc   equ 20H      ; смещение _phantom_data_ в GDT (GDT[4])
CODEMACRO   opprefx      ; макрос для изменения размера операнда
            db 66H       ; по умолчанию
EMDM
init_code   SEGMENT ER PUBLIC
; GDT_DESC это общее символическое имя,  на которое имеется ссылка
; в файле, создаваемом построителем. Определение LOCATION в разделе
; TABLE файла построителя указывает на данную метку; построитель
; хранит и базу, и границу для указанной таблицы в этой позиции
; оперативной памяти.
PUBLIC      gdt_desc
gdt_desc    dp ?
; START   это   метка,   указывающая  на  истинное  начало  нашего
; исполняемого кода. Управление самозагрузкой BOOTSTRAP заставляет
; построитель поместить в вектор сброса компонента короткий переход
; к названной метке (в данном случае, START).
PUBLIC      start
; Поскольку этот код инициализиует процессоры i486, 386 DX, 386 SX
; или 376 в защищенный режим,  то первые команды в START проверяют
; тип компонента.  Процессоры i486,  либо 386 DX или  386  SX  при
; сбросе в реальном режиме или режиме совместимости: бит PE очищен,
; а  бит  D  для  CS  не  установлен.  Команды  выполняются  в  их
; 16-битовой форме.  Процессор 376 при сбросе имеет установленный
; бит PE и бит D,  поэтому команды  выполняются  в  их  32-битовой
; форме.
    nop                   ; Команды NOP для инициализации процессо-
    nop                   ; ров i486 или 386 DS или SX
start:
    cld                   ; Очистить флаг направления
    smsw bx               ; Проверить тип процессора при сбросе
    test bl,1             ; для скорости использовать SMSW, а не
    inz pestart           ; MOV
; Загрузка GDTR в REALSTART или PESTART зависит от того, возвращает
; ли аппаратное обеспечение пользователя READY при попытке записи
; в ПЗУ
realstart:                ; Это процессор i486 или 386 DX или
    opprefx               ; 386 SX в 16-битовом реальном режиме,
    mov eax,offset gdt_desc  ; Для получения 32-битового адреса
                          ; указателя GDT используйте префикс
                          ; операнда
    opprefx               ; Для получения адреса относительно
    and eax,0ffffh        ; области сброса используйте префикс
                          ; операнда
    lgdtw cs:[eax]        ; Загрузка в GDTR 24 битов базы
    mov ax,bx             ; Копирование слова состояния машины
    or al,pe_flag         ; Установка бита PE
    lmsw ax               ; Загрузка слова состояния машины при
                          ; установленном бите PE
    jmp next              ; Очистка очереди выборки команд
pestart:                  ; Это процессор 376 в 32-битовом защищен-
                          ; ном режиме
mode
    mov eax,offset gdt_desc  ; Получение 32-битового адреса
                          ; указателя GDT
    and eax,0ffffh        ; Получение адреса относительно области
                          ; сброса
    lgdt cs:[eax]         ; Загрузка 32 битов базы в GDTR
next:
    xor eax,eax           ; Инициализация селекторов данных
    mov al,data_selc      ; GDT[4] это _phantom_data_
    mov ds,ax
    mov ss,ax
    mov es,ax
    mov fs,ax
    mov gs,ax
    test bl,1
    jnz pejump
    opprefx               ; Используйте префикс операнда для
pejump:                   ; перехода к процессору i486, либо
                          ; 386 DX или 386 SX
    jmp far ptr c_startup ; Первый дальний переход переводит A31-20
                          ; в низкое состояние
init_code ENDS
END
из этого примера я правильно понимаю что существуют процессоры после подачи ресет находятся в защищенном режиме 32 битной адрессации?
Вот какое у меня сложилось мнение..может оно ошибочно, но использовать буду только его, ибо другого не нашел.
все ниже для сегментной организации памяти
- реальный и защищенный режим это одно и тоже, разница состоит в ослаблении защиты, разных размеров сегментов и соотвественно используемых смещения(ведь наверно нерационально будет для адрессации 64 кб использовать 32 бита?)
-память представляет собой сегменты(их количество определяет модель памяти_
-адресс каждого байта представляет собой смещение относительно базы сегмента
-полученный адресс байта в сегменте всегда 32 битен(линейный)
-полученный при любых режимах 32 битный линейный адресс накладывается на физический
-адресс получается сложение адресса базы со смещением(адресс базы хранится в скрытой части сегментного регистра)
-одна и таже команда может интерпретироваться процессором по разному(разность заключается в разрядности операндов, и адресса)
-процессор определяет как декодировать команду в соответствии с битом D, этот бит находится в скрытой части сегментного регистра и при старте компьютера может быть сброшен или нет(зависит от модели процессора) 
-процессор изменит интерпретацию для одной команды, если перед ней будет префикс изменения разрядности операнда или адресса
-бит D устанавливается в скрытой части сегментного регистра при загрузке селектора на дескриптор(в дескрипторе установлен или сброшен битD)
-установленный бит D в cs  означает что код будет интерпретироваться процессором как чистый 32 битный код(это означает 32 бита адресса и 8 бит операнд для всех команд работы 
с данными использующие явные или неявные операнды в команде, а также команд передачи управления)
-для любых команд справедлив бит D и префиксы , меняющие на время выполнения мировозренние процессора.(процессор затуманен битом D)
-бит D содержится в двух сегментных регистрах- данных и стека.
-для сегмента стека установленный бит d означает что для адрессации данных в стеке будет использоваться 32 битные смещения,  независимо от бита D в cs!(будет использоваться esp полностью) тоесть если бит d будет установлен в cs, а процессор встретит команду push ax при сброшенном бите d в скрытой части ss то будет использован sp -по смещению равным сумме адресса базы сегмента ss и смещения из sp
-процессор представляет из себя грубо говоря несколько устройств, ключевую роль в организации обработки памяти играет блок
управления скрытыми частями сегментных регистров.
-управление режимами реальный\защищенный(установка бита PE) означает измение работы блока управления скрытыми частями сегментных регистров
а также включение механизма защиты сегментов(защита от записи..присутсвие на диске и прочее, что и является сущностью защищенного режима)
-в реальном режиме также как и в защищенном(бит PE) при получении адресса байта больше чем лимит в скрытой части при открытой линии старших адрессов приводит к иключению общей защиты GP =-13h(из-за отсутствия обработчика система падает)При включенной адрессных линий исключения защиты не происходит, а происходит заворот адресса.
-основная идея защищенного режима -это защита сегментов,а не новые виды организации памяти(естественно все это при сегментации)
-при сброшенном бите PE невозможно изменение базы сегмента, предела сегмента, бита D
-при установке бита PE возможно изменение всех частей скрытого сегментного регистра, путем загрузки сегментных регистров
-адресс байта это либо адресс байта начала инструкции ..либо адресс начала операнда(байта данных)
-адресс байтов данных, которые обрабатывают инструции процессора получается сложением базы, взятой из скрытой части сегментного региста DS со смещение , полученным после интерпретации.
-в современных 32 разрядных процессорах для нахождения смещения команды существует регистр eip, младшие два байта называются ip (регистр ip умер вместе с 086 процессором)
-адресс инструкции процессора получается сложением базы, взятой из cs cо смещением из eip.
-eip изменяется командами передачи управления.
при передаче управления между сегментами, с разной разрядностью и лимитами(при установленном бите PE) нужно обращать внимание на порядок в котором происходит передача управления 
-например процессор учел бит D и префиксы пришел к выводу что команда- это прыжок с 16 битным числом в качестве смещения и числом 8 в качестве селектора - jmp 08h:01112h
число 1112h прибавляется к eip, теперь он содержит смещение
число 8 выбирает 1 дескриптор в gdt и загружает в скрытую часть базу..лимит..бит d(если установлен, он будет использоваться при следующих командах..смещение прыжка уже подсчитано ранее)
к базе, вновь обявленной в скрытой части прибавляется содержимое eip
передача управления.
здесь не затронуты привелегии.
Для возврата в реальный режим(тоесть для прыжка в сегмент лимитом в 64 кб)нужно такое смещение jmp cs:? в котором будет использовано не более 20 бит.как правило везде примеры работают в одном участке линейного пространства, не превышающим 64 кб.  и потому больше 20 бит для смещения не используется.
только не надо расстреливать за такой еретизм.нефига не знаю..потому и затеял всю эту кашу.