|
|
|
|
Краткое изложение размещения программного кода
Заметим, что повторная входимость не является необходимым условием переместимости программ, и что переместимость не является необходимым условием
повторной входимости программ. "Настройка программ" (путем модификации адресов при размещении программы по определенному адресу) применяется для
возможности перемещения программы в памяти. "Повторная входимость" применяется для программ, имеющих "безопасную" локальную память. "Рекурсивные"
программы - это тип повторно-входимых программ с ослабленными ограничениями, когда программист знает в какой точке должны быть сохранены данные при
подготовке следующего вызова.
Кроме того, при написании повторно-входимых программ нельзя забывать о том, что параметры программы также должны быть повторно-входимыми. Когда
новая процедура или задача получает управление, данные должны передаваться в такую область вызываемой программы, которая либо всегда защищена (как стек),
либо всегда сохраняемая (например, все программы обслуживания прерываний сохраняют свои регистры при вызове программы).
Также следует помнить о том, что имеется два типа переместимого программного кода. К первому типу относится настраиваемая система программ
операционной системы MS-DOS, когда MS-DOS, используя схему настройки, изменяет значения переменных сегмента для того, чтобы настроить программу. Ко
второму типу относятся самонастраивающиеся программы, для которых не требуется схема настройки. Самонастраивающимися программами могут быть только такие
программы, которые имеют только адресацию смещения в инструкциях CALL (вызвать процедуру) и JMP (безусловный переход).
|
|