Компоновка

Компоновка программы создает готовую для работы программу, которая называется также исполняемой программой или загрузочным модулем. При этом решаются две основные задачи:

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 [тип вырав.] [тип комбин.] [класс] [тип размера]

… ; команды и директивы

Наши рекомендации