09. Организация многомодульных программ. - mRrvz/bmstu-asm GitHub Wiki

Организация многомодульных программ

Как и на других языках программирования, программа на ассемблере может состоять из нескольких файлов - модулей. При компиляции (трансляции) каждый модуль превращается в объектный файл, далее при компоновке объектные файлы соединяются в единый исполняемый модуль.

Модули обычно состоят из описания сегментов будущей программы с помощью директивы SEGMENT.

Пример:

имя SEGMENT [READONLY] выравнивание тип разряд 'класс' 
… 
имя ENDS

Параметры:

● Выравнивание - расположение начала сегмента с адреса, кратного какому-либо значению. Варианты:

BYTE;

WORD (2 байта);

DWORD (4 байта);

PARA (16 байт, по умолчанию);

PAGE (256 байт).

● Тип:

PUBLIC (сегменты с одним именем объединятся в один);

STACK (для стека); COMMON (сегменты будут “наложены” друг на друга по одним и тем же адресам памяти);

AT <начало> - расположение по фиксированному физическому адресу, параметр - сегментная часть этого адреса;

PRIVATE - вариант по умолчанию.

● Класс - метка, позволяющая объединить сегменты (расположить в памяти друг за другом).

⚠️ **GitHub.com Fallback** ⚠️