Компоновка программы создает готовую для работы программу, которая называется также исполняемой программой или загрузочным модулем. При этом решаются две основные задачи:
1) если в программе используются функции, например, sin, exp и т.д., соответствующие им программные модули выбираются из библиотеки подпрограмм соответствующей системы программирования и вставляются в объектный модуль;
2) объектный модуль преобразуется в соответствии с реальными адресами основной памяти, куда будет размещаться программа для выполнения.
Использование библиотек
Создание макроопределений
имя_макрокоманды macro [формальный_параметр1, формальный_параметр2, …]
…; команды и директивы, образующие тело
; макроопределения
еndm
Вызов макроопределений
имя_макрокоманды [фактический параметр1, фактический параметр2, …]
message macro msg1
lea dx,msg1; в dx загрузить эффективный адрес ячейки
; msg1, передаваемой в качестве параметра макроопределению
mov ah,9; функция вывода строки на экран
int 21h; прерывание DOS
endm
В Ассемблере существует возможность подключения нескольких файлов с исходным текстом программы к какому-то одному файлу (для этого существует директива include), таким образом можно создавать и использовать библиотеки макросов.
Типы данных. Директивы определения данных и сегментации. Операции и выражения.
Директивы определения данных служат для задания размеров и содержимого данных, используемых в программе. В отличие от других директив Ассемблера, при обработке директив определения данных в памяти генерируется объектный код – отводится место под данные. Транслятор преобразует задаваемые в этих директивах числа, строки и выражения в отдельные образы байтов, слов или других единиц данных. Эти образы копируются в объектный файл.
Директивы определения данных могут задавать:
- скалярные данные, представляющие собой единичное значение или набор единичных значений;
- записи, позволяющие манипулировать с данными на уровне битов;
- структуры, позволяющие обрабатывать совокупность данных разных типов как одно целое.
[идентификатор] db значение[,значение…][;комментарий ]
Директивы определения скалярных данных
Мнемоника | Описание | Байты |
db | define byte | |
dw | define word | |
dd | define doubleword | |
df | define far pointer | |
dq | define quadword | |
dt | define ten bytes |
Структура сегмента на Ассемблере имеет вид:
имя segment [тип вырав.] [тип комбин.] [класс] [тип размера]
…; команды и директивы