Cтраница 1
Вызывающая последовательность, создающая на экране образ символа, состоит из двух слов. [1]
Вызывающая последовательность, создающая на экране образ символа, состоит из двух слов. Первое слово - команда, генерирующая прерывание, второе - адрес строки таблицы символов, соответствующей блоку команд требуемого символа. Программа, активируемая прерыванием, помещает адрес возврата на вершину стека, извлекает из таблицы символов указатель на строку корреляционной таблицы ( при этом используется адрес из второго слова вызывающей последовательности) и в конечном счете определяет адрес блока команд дисплейного процессора, описывающих нужный символ. Этот адрес заносится в счетчик команд дисплейного процессора, и начинается выполнение команд из блока символа. [2]
![]() |
Блок-схемы интерпретатора. [3] |
Во втором блоке вычисляется число констант и дополнительных параметров в вызывающей последовательности модуля. [4]
Подпрограмма, единственной копии которой достаточно для установления связей с ней с помощью вызывающих последовательностей при использовании ее более чем в одном месте машинной программы. [5]
![]() |
Блок-схемы интерпретатора. [6] |
Первый блок служит для засылки в рабочие ячейки подпрограммы данных, содержащихся в вызывающей последовательности. [7]
На рис. 3.11 приведена подпрограмма сложения двух 16-разрядных чисел, а на рис. 3.12 - типичная вызывающая последовательность. [8]
Он используется обычно как первый оператор в последовательности, организующей обращение к процедуре - в вызывающей последовательности. Его назначение - запомнить в стеке управляющую информацию, которая обеспечит правильное продолжение использования стека в программе, после того как к ней будет осуществлен возврат из процедур более глубокого уровня вложенности. [9]
Программа, активируемая этим прерыванием, помещает в счетчик команд верхний элемент стека, что обеспечивает правильный возврат из символа к вызывающей последовательности. Таблица символов и стек могут содержать до 64 элементов. [10]
Номер модуля берется из таблицы ТМ. Блок исполняется в цикле настроек модуля, поскольку длина вызывающей последовательности может зависеть от настройки. [11]
Коды, связанные с предложением CALL SQRT, представляют собой вызывающую последовательность ( сохраняющую содержимое всех регистров и обновляющую указатели стеков), заканчивающуюся предложением передачи управления. [12]
Как будет вскоре объяснено, мы будем использовать вершину, ассоциированную с узлом-описанием, для маркировки аргументов, являющихся внутренними для данного описания. Мы разделяем вершины для узлов-ролей на два множества, соответствующие внешней вызывающей последовательности и внутренним формальным параметрам процедуры. Одна из вершин, ассоциированных с каждым узлом-ролью, используется для представления внешней точки зрения системы на данный аргумент при вызове процедуры, а другая вершина - для представления внутренней точки зрения процедуры на данный формальный параметр процедуры. [13]
Как правило, для решения этой задачи используется достаточно универсальный механизм, обеспечивающий возможность обращения к подпрограммам, написанным на языке ассемблера. Как правило, для этих целей используется соглашение о связях и вызывающая последовательность, принятая в языке Фортран. Делается это, чтобы обеспечить возможность использования накопленных ранее пакетов подпрограмм, написанных на языке Фортран. [14]
Всякий раз, когда управление передается подпрограмме, вызывающая программа должна в соответствии с принятыми соглашениями обеспечить для вызываемой программы область сохранения, в которую вызываемая программа будет записывать содержимое общих регистров. В регистр 13 - регистр области сохранения - до начала выполнения вызывающей последовательности должен быть загружен адрес области сохранения. Области сохранения связываются в цепочку по мере передачи управления программам более низкого уровня. [15]