Ассемблер и программирование для IBM PC


          

ГЛАВА 21. Компановка программ


------------------------------------------------------------

Компановка программ

Цель: Раскрыть технологию программирования, включающую компа новку и выполнение ассемблерных программ.

ВВЕДЕНИЕ ------------------------------------------------------------

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

ъ бывает необходимо скомпановать программы, написанные на разных языках, например, для объединения мощности языка высокого уровня и эффективности ассемблера; ъ программа, написанная в виде одного модуля, может оказаться слишком большой для ассемблирования; ъ отдельные части программы могут быть написаны разными группами программистов, ассемблирующих свои модули раздельно; ъ ввиду возможно большого размера выполняемого модуля, может появиться необходимость перекрытия частей программы в процессе выполнения.

Каждая программа ассемблируется отдельно и генерирует собственный уникальный объектный (OBJ) модуль. Программа компановщик (LINK) затем компанует объектные модули в один объединенный выполняемый (EXE) модуль. Обычно выполнение начинается с основной программы, которая вызывает одну или более подпрограмм. Подпрограммы, в свою очередь, могут вызывать другие подпрограммы. На рис.21.1 показаны два примера иерархической структуры основной подпрограммы и трех подпрограмм. На рис. 21.1 (а) основная программы вызывает подпрограммы 1, 2 и 3. На рис. 21.1 (б) основная программа вызывает подпрограммы 1 и 2, а подпрограмма 1 вызывает подпрограмму 3.

------------------------------------------------------------ ------------------------------------------------------------ Рис.21.1. Иерархия программ.

Существует много разновидностей организации подпрограмм, но любая организация должна быть "понятна" и ассемблеру, и компановщику, и этапу выполнения. Следует быть внимательным к ситуациям, когда, например, под программа 1 вызывает




Содержание  Назад  Вперед