Цитата Сообщение от nzeemin Посмотреть сообщение
Секция DSECT -- это переменные и массивы, которые нужны уже только после запуска.
Сейчас вся секция DSECT -- это нули, и она включена в SAV-файл, что собственно только расходует лишние блоки на диске.
Да, помнится, после ассемблера Системы-360 мне тоже сильно не хватало аппарата фиктивных секций - не столько для экономии места, сколько для манипулирования разнообразными таблицами, которые расположены не здесь в программе, а где-то в другом месте. В Системе-360 все просто: описал таблицу в отдельном DSECT'е, занес ее адрес в какой-то регистр, сделал для этого регистра USING на начало этой фиктивной секции и пиши имена полей из таблицы, как будто это твои переменные.

А здесь - изба фигвам. Регистров мало (у Системы-360 их 16), привязка какой-то секции к регистру не предусмотрена, такой стиль программирования (очень удобный, кстати) здесь просто не предусмотрен.

Для работы с таблицами я, помнится, сочинил какую-то макрокоманду, которая позволяла компактно описать таблицу, присваивая именам ее полей значения смещений от ее начала, после чего пользовал их в явном виде (типа MOV NAME1(R5),R0, здесь NAME1 - имя какого-то поля из таблицы, начальный адрес которой лежит в R5), что явно лучше, чем MOV 12(R5),R0. А вот в том виде, в каком эта задача поставлена, она не решается вообще...