Cтраница 1
Составление подпрограммы требует известной осмотрительности. Например, необходимо следить за тем, чтобы участвующие в ее работе адресуемые регистры не совпадали с теми, где хранятся числа, необходимые для дальнейшей работы основной программы. Аргументы, используемые в подпрограмме, лучше всего к моменту обращения к ней располагать в регистрах стека. Там же рекомендуется размещать результаты работы подпрограммы к моменту возвращения к основной программе. [1]
Составление подпрограммы начинают с уточнения алгоритма с целью упрощения его реализации на машинном языке. [2]
![]() |
Стек адресов возврата процессора Н6809. [3] |
Для составления подпрограмм на машинном языке необходимо иметь команды, позволяющие сохранять текущее значение счетчика команд при вызове подпрограммы и восстанавливать это значение после ее выполнения. [4]
При составлении подпрограммы таким формальным параметрам можно не ставить в соответствие какие-либо особые адреса, а использовать для этих целей адрес 0000, так как все команды или константы, содержащие эти адреса, будут переменными и поэтому будут формироваться заново при каждом новом обращении к подпрограмме. [5]
При составлении подпрограммы мы теперь не будем ставить в соответствие каждой ее строке определенный адрес, а будем просто нумеровать эти строки четырехзначными целыми восьмеричными числами, начиная с нуля. Очевидно, что в этом случае фактический адрес строки с номером i этой подпрограммы будет равен а - - г, где а - фактическое начало подпрограммы в памяти машины. Это обстоятельство н используется в приводимой ниже подпрограмме. [6]
При составлении подпрограммы мы будем предполагать, что аргумент х может иметь произвольное значение, представленное в виде числа с плавающей запятой в компактной форме. [7]
При составлении подпрограмм следует учитывать то обстоятельство, что обращение к ним может производиться из какого-либо цикла, для организации которого используется индексный регистр. Поэтому, чтобы обращение к подпрограмме не нарушало организацию цикла, необходимо позаботиться о том, чтобы содержимое индексного регистра не изменилось в результате обращения к подпрограмме. Конечно, задачу сохранения содержимого индексного регистра можно возложить на основную программу. [8]
При составлении подпрограммы FUNCTION с дополнительными точками входа необходимо следить за тем, чтобы при каждом входе в подпрограмму производилось присваивание значения функции, имя которой указывается в операторе FUNCTION, или функции, имя которой указывается в одном из операторов ENTRY. Для функций, определяемых в операторах FUNCTION и ENTRY, в подпрограмме отводится одна и та же память. Размер памяти определяется в соответствии с типом и длиной функции, имя которой указано в операторе FUNCTION Типы функций, определяемых в операторах FUNCTION и ENTRY, могут не совпадать. Однако в этом случае необходимо следить за тем, чтобы длина функций, определенных в операторе FUNCTION и в операторах ENTRY, была равной. [9]
При составлении подпрограммы FUNCTION с дополнительными точками входа необходимо следить за тем, чтобы при каждом входе в подпрограмму производилось присваивание значения функции, имя которой указывается в операторе FUNCTION, или функции, имя которой указывается в одном из операторов ENTRY. Для функций, определяемых в операторах FUNCTION и ENTRY, в подпрограмме отводится одна и та же память. Размер памяти определяется в соответствии с типом и длиной функции, имя которой указано в операторе FUNCTION. Типы функций, определяемых в операторах FUNCTION и ENTRY, могут не совпадать. Однако в этом случае необходимо следить за тем, чтобы длина функций, определенных в операторе FUNCTION и в операторах ENTRY, была одинаковой. [10]
Он предназначен для составления подпрограмм геометрических преобразований и построения проекций пространственных объектов. [11]
Теперь приступим к составлению подпрограммы. [12]
Задачи III уровня требуют либо составления более сложных подпрограмм, либо комбинирования подпрограмм и предполагают элемент творчества. [13]
Аппарат макросов как раз и является удобным средством составления подпрограмм на автокоде и их использования открытым способом. [14]
Ниже приводятся требования, которые необходимо соблюдать при составлении подпрограмм на языке Ассемблера. Эти требования определяют способы передачи управления и способы передачи данных между программными единицами. [15]