В 32-битном режиме вы можете (и обычно должны) всегда использовать значение CS, которое ссылается на запись GDT с base = 0 / limit = -1.Если вы работаете в пользовательском пространстве под основной операционной системой, ваш процесс уже начнется в этом случае.Фактически DS / ES / SS будет настроен таким же образом, то есть модель с плоской памятью.(FS или GS могут иметь ненулевое основание для локального хранилища потока.)
Затем вы можете ссылаться на память в этом разделе / сегменте со смещением = 0x00E51000.например, mov eax, 0x00E51234
/ jmp eax
.
С DS / ES / SS, также равным 0 / -1, у вас есть модель с плоской памятью, где mov eax, [0x00E51234]
загружает те же байты, которые вы скачалик.