|
Если же обращаться к модулю нужно из разных мест программы с разными параметрами, то описанные выше приемы организации совместной работы модулей позволяют иметь каждый модуль в одном экземпляре, выписывая для каждого обращения лишь команды связи. При этом, как правило, экономится даже память по сравнению с методом программирования по образцам. При составлении модулей удобно (хотя и не обязательно) объединять все рабочие ячейки одного модуля (например, ячейки а, 6, /г, /, /н, /к, х, у, ft, i для подпрограммы 14.3.2) в один массив и располагать этот массив рядом с массивом команд модуля (непосредственно перед ячейкой рп или вслед за ячейкой рк). Такое компактное размещение в памяти всех ячеек, связанных с работой одного § 5. НАСТРОЙКА МОДУЛЕЙ ПО ПАРАМЕТРАМ 315 модуля, облегчает компоновку программы, распределение памяти и даже отладку программы. Если почему-либо модуль при переделке программы окажется ненужным, то занятая им память освободится одним куском — это тоже удобно. Далее, независимость модулей друг от друга делает возможным проводить экономию ячеек в пределах модуля, не считаясь с тем, что делается вне него. Так, в подпрограмме 14.3.2 используются ячейки а, Ь, п, х> у, /, A, i. Содержимое ячейки а перестает быть нужным подпрограмме после выполнения команды рг + 1. Надобность в ячейке i впервые возникает позднее — при выполнении команды р2.+ 2. Правильность работы подпрограммы не нарушится, если при распределении памяти ячейки а и i будут совмещены, т. е, если символическим адресам а и i будет поставлен в соответствие один и тот же истинный адрес. Но при этом подпрограмма не будет сохранять значение переменной а в этой совмещенной ячейке. Как мы уже говорили, для основного модуля и других подпрограмм безразлично, сохранит или испортит подпрограмма содержимое ячейки а. Поэтому совмещение ячеек ami, допустимое с точки зрения правильности работы подпрограммы 14.3.2, приемлемо и с точки зрения правильной работы всех других модулей программы. Из тех же соображений допустимо, чтобы символические адреса 6 и / заменяли один и тот же истинный адрес.
|