Недостаток стандартного массива
May. 16th, 2019 11:21 amОбнаружился недостаток стандартного массива: нет простого способа инициализировать массив данных адресами других объектов. Скажем, сделать массив указателей на строки или массив указателей на фукнции. Проблема в том, что настройка адресов выполняется только в секции команд и в секции рассылок. Секция инициализированных данных ("констант") не настраивается.
Единственный штатный способ инициализировать массив указателей это разместить его копию в сегменте команд, и сделать рассылку в секцию BSS. Но при этом расходуется лишнее место в секции команд, а его жалко.
Можно решить эту проблему, введя дополнительный формат инструкций рассылки: пересылать адрес источника, а не его содержимое. В этом случае сохраняется совместимость со стандартным массивом.
Единственный штатный способ инициализировать массив указателей это разместить его копию в сегменте команд, и сделать рассылку в секцию BSS. Но при этом расходуется лишнее место в секции команд, а его жалко.
Можно решить эту проблему, введя дополнительный формат инструкций рассылки: пересылать адрес источника, а не его содержимое. В этом случае сохраняется совместимость со стандартным массивом.