09. Организация многомодульных программ. - mRrvz/bmstu-asm GitHub Wiki
Как и на других языках программирования, программа на ассемблере может состоять из нескольких файлов - модулей. При компиляции (трансляции) каждый модуль превращается в объектный файл, далее при компоновке объектные файлы соединяются в единый исполняемый модуль.
Модули обычно состоят из описания сегментов будущей программы с помощью директивы SEGMENT.
Пример:
имя SEGMENT [READONLY] выравнивание тип разряд 'класс'
…
имя ENDS
Параметры:
● Выравнивание - расположение начала сегмента с адреса, кратного какому-либо значению. Варианты:
BYTE;
WORD (2 байта);
DWORD (4 байта);
PARA (16 байт, по умолчанию);
PAGE (256 байт).
● Тип:
PUBLIC (сегменты с одним именем объединятся в один);
STACK (для стека); COMMON (сегменты будут “наложены” друг на друга по одним и тем же адресам памяти);
AT <начало> - расположение по фиксированному физическому адресу, параметр - сегментная часть этого адреса;
PRIVATE - вариант по умолчанию.
● Класс - метка, позволяющая объединить сегменты (расположить в памяти друг за другом).