Для вашей программы она всегда находится в оперативной памяти. Если он работает на "голом" оборудовании, это также верно для аппаратного обеспечения.
Но, если программа работает под типичной современной ОС, вы не знаете, переносятся ли некоторые данные на диск и когда. Возможно, что при попытке доступа ваша программа будет остановлена, а затем возобновлена, когда ОС вернет данные в ОЗУ. Подробнее см. Paging .
И вам следует позаботиться о том, кто и как «создает» сегменты. Если вы используете x86 в реальном режиме, то память должна быть выделена, а данные помещены в первую очередь в адресном пространстве 1 МБ. Только тогда вы можете загрузить адрес сегмента в регистр сегмента и объявить, для чего он используется.