Поскольку выбор размерности операндов и адресов определяется в сегментах кода и их дескрипторах, сегменты данных могут свободно разделять между собой 16-разрядные и 32-разрядные сегменты кода. Единственное ограничение налагается указателями с 16-разрядным смещением, которые могут адресовать только первые 64 Кбайт сегмента. Когда между 16-разрядными и 32-разрядными сегментами когда должен разделяться сегмент данных длиннее чем 64 Кбайт, то данные, которые должны быть доступны 16-разрядным сегментам, должны быть помещены в первые 64 Кбайт.
Стек с диапазоном меньше 64 Кбайт может разделятся как 16-разрядными так и 32-разрядными сегментами кода. Этот класс стеков включает:
Стеки в сегментах, расширяемых вверх, с очищенными битами детализации и большими битами.
Стеки в сегментах, расширяемых вниз, с очищенными битами детализации и большими битами.
Стеки в сегментах, расширяемых вверх, с очищенным набором битов детализации и большим битом. В этих сегментах стек полностью содержится внутри младших 64 Кбайт. (Смещения, большие чем 0FFFFH, могут быть использованы для неразделяемых данных не входящих в стек).
В общем случае, B-бит сегмента стека нельзя использовать для изменения размера стека, который используется 16-разрядным сегментом кода. Размер указателя стека, используемый процессором для неявных ссылок на стек, управляется B-битом дескриптора сегмента данных стека. Неявными являются ссылки, вызванные прерываниями, исключениями и такими командами, как PUSH, POP, CALL и RET. Хотя кажется, что B-бит можно использовать для увеличения сегмента стека 16-разрядных программ сверх 64 Кбайт, делать этого нельзя. B-бит не управляет явными ссылками стека, такими как ссылки на параметры или локальные переменные. "Большой" стек может быть использован 16-разрядным сегментом кода только в случае, если код модифицирован таким образом, что все явные ссылки на стек стоят перед префиксом размера адреса. Такая модификация вызывает использование этими ссылками 32-разрядной адресации.
В больших сегментах, расширяемых вниз (установлены биты детализации, большой и бит расширения вниз), все смещения больше 64Кбайт, следовательно 16-разрядная программа не может использовать сегмент стека этого типа, хотя сегмент кода и модифицирован для использования 32-разрядной адресации. (Более подробная информация о G, B и E битах содержится в Главе 6).