Перемещаемость программ и данных

Некоторые последовательности команд могут быть перемещаемы. Это означает следующее. Первую последовательность можно располагать, необязательно начиная с адреса 00AF10. Ее можно расположить, начиная с любого двойного слова с адресом Q. Последовательность команд будет правильно выполняться, если только в общий регистр поместить перед выполнением программы значение Q-16. Смещения команд и констант, употребленные в командах, останутся верными и для нового местоположения программы. Как угодно можно перемещать в основной памяти и вторую программу. Необходимо только, чтобы значение адреса Q, выбранного для помещения первой команды, было загружено перед выполнением программы в общий регистр. По такому принципу работает расчет КАСКО и ОСАГО на специальных Интернет-ресурсах, которые предоставляют пользователям данный сервис. Достаточно в таблицу ввести исходные данные и программа рассчитает результат, который ляжет в основу выбора компании-страховщика.
В указанном смысле перемещаемы также и исходные данные и результаты. Наши программы «не знают», где они расположены; им известен только номер общего регистра, в который загружен базовый адрес данных.
Предполагается, что базовые адреса для самой программы и для данных загружены «кем-то» в базовые регистры, прежде чем получила управление первая команда программы.