Организация и функционирование компьютеров



              

Машинная программа - часть 2


При этом сбиваются рабочие адреса данных в памяти в командах программы. С этой проблемой оказалось справиться несложно. Для вычисления адреса теперь используются две характеристики: базовый начальный адрес размещения программы в памяти, который меняется от запуска к запуску, и смещение адреса относительно начала программы, которое в готовой программе неизменно. Адресный регистр процессора состоит из двух частей: одна содержит базовый адрес, другая смещение относительно начала программы. Из машинных команд извлекаются только смещения. Для конструирования фактического адреса, который и посылается по адресной шине, значение регистра базового адреса складывается со значением регистра смещения адреса. Регистр базового адреса заполняется в момент размещения программы в памяти и затем в процессе выполнения программы не меняется. Изменяется только адресный регистр смещения.

Вторым следствием увеличения мощности компьютера стало увеличение объема программ. Эта, а также некоторые другие причины, привели к усложнению структуры программы, то есть  разбиение их на более простые блоки с указанием логики использования этих блоков. Это привело к появлению концепции подпрограммы. Подпрограммой принято называть законченную программу, которая выполняет не самостоятельную, а служебную функцию. Эта функция обычно носит стандартный, повторяющийся характер и может использоваться не в одной, а во многих программах. С точки зрения использующих ее программ от подпрограммы требуется правильное выполнение возложенной на нее функции, а ее внутреннее строение роли не играет. Наличие определенной подпрограммы позволяет программисту в определенных случаях вместо самостоятельного программирования какой-то части программы просто обратиться к услугам специально созданной для этого подпрограммы, пусть даже она создана другим программистом.

Концепция подпрограмм привела к появлению и распространению библиотек подпрограмм, что привело к колоссальному увеличению производительности труда программиста.


Содержание  Назад  Вперед