Рабочая часть модуля

Рабочая часть модуля уже не является неизменяемой. Но при наличии формирующей части эта изменяемость рабочей части становится как бы внутренним делом модуля, она осложняет задачу лишь автора данного модуля, которому нужно составить, кроме рабочей, еще и формирующую часть. Программисту же, пишущему другие модули и обращения к данному модулю, изменяемость рабочей части никаких забот не доставляет — модуль всегда готов к работе, как бы ни менялись значения параметров обращения к нему. В этом отношении мы добились такого же эффекта, как если бы модуль был неизменяемым.
Составим формирующую часть к программе 8.2.4. Мы снова останавливаемся на этой программе лишь в учебных целях, т. к. для этой задачи существуют более компактные программы (см. упражнение 9.2.1.) Итак, пусть в ячейках аг и пг находятся коды

Сформировать требуется (см. выше) содержимое ячеек г2 ч-г5, z2 ч- z6, zs. Будем предполагать также, что в нашем распоряжении есть константы

не зависящие от параметров обращения. Учтем, что код операции ПЧ равен 008. Это упрощает формирование команд с таким кодом операции. Формирующая часть программы 8.2.4 может быть такой:
Заметим, что если в качестве рабочей ячейки г% использовать ячейку с адресом 0001 (в системах программирования, принятых для машин типа М-20, эта ячейка, как правило, и используется как рабочая ячейка для большинства подпрограмм), то заготовки zd и zw становятся не нужны, а формирование заготовки z8 упрощается.
Упражнения. 1. Составить подпрограмму вычисления произведения С двух прямоугольных матриц: Л, размером т X р, и J5, размером р X п (таким образом, матрица С имеет размер т X п). Матрицы располагаются в памяти по строкам, так что адрес a[i, j] равен а + (i— 1) р + /, адрес Ь [/, k] равен Ь + (/ —- 1) п + k, адрес с [*, k] равен с + (i — 1) п + k. Снабдить подпрограмму
формирующей частью, исходя из предположения, что к началу работы подпрограммы в ее рабочих ячейках содержатся следующие коды;
Предусмотреть сохранение (т. е. запоминание и восстановление) содержимого индекс-регистра во время работы подпрограммы.
2. Написать общий вид команд обращения к подпрограмме 8.2.4 с использованием информационного слова, содержащего параметры а и /г, и формирующую часть подпрограммы, соответствующую этому способу обращения.
3. Составить ту же подпрограмму, что в упражнении 1, используя информационные слова для передачи параметров.