Cтраница 2
Оператор используется для присвоения числовых значений символическим наименованиям. Символическому наименованию, записанному в графе этикетка, присваивается числовое значение или номер базиса с относительным адресом. При записи числа или относительного адреса в восьмеричной системе справа указывается буква В. [16]
До настоящего времени предполагалось, что все символические наименования во входном модуле присвоены ячейкам в этом модуле. Это достигается введением символического наименования точно в одном поле метки; в этом случае символическое наименование называется определенным. Если символическое наименование появляется в модуле, но не определяется или определяется в том же самом модуле несколько раз, ассемблер фиксирует ошибку. [17]
В управляющей секции, содержащей оператор с символическим наименованием ENTRY, записывается также оператор, имеющий символическое наименование EXTRN, в котором в пятых элементах строк записана последовательность от одного до ста меток операторов ( перемещаемых символических адресов) других ( внешних) управляющих секций, к которым осуществляется переход из данной секции. Метки, указанные в операторе EXTRN, не могут совпадать ни с одной из меток, применяемых в той управляющей секции, в которой этот оператор записан. [18]
Для короткой программы достаточно описания ВВ, определений символических наименований, одной блок-схемы и листинга. В остальных случаях следует сегментировать описание в соответствии с сегментацией самой программы. Вначале следует рассмотреть основную программу, а затем все подпрограммы. В более сложных ситуациях программа и документация могут иметь иерархическую структуру. Независимо от простой сегментации или сложной иерархии должно быть общее введение и подробное описание каждого сегмента. Каждый сегмент должен включать определения соответствующих символических наименований и описания ВВ. Так как эти описания рассчитаны на программиста, следует пояснить форматы внутренних и внешних данных. Блок-схемы, диаграммы и листинги могут идти вперемешку или группироваться в конце. Решение принимает составитель, но в случае длинного описания во введении следует обязательно привести общую блок-схему. Составление блок-схем является искусством и нужно тщательно выбирать уровень подробности блок-схем. Очевидно, при наличии нескольких блок-схем первой следует привести общую блок-схему, показывающую связи всех остальных блок-схем. В листингах должны быть поясняющие комментарии, подкрепляющие текст. [19]
Для ссылки в одних объектах программы на другие используются символические наименования объектов, называемые обычио этикетками. Этими объектами в СИМП могут быть: операторы-команды, например, в операторах передачи управления; массивы данных; различные константы; отдельные рабочие ячейки или поля; индексные ячейки; базисные адреса; имена внешних устройств. Символические наименования при ссылке на объект записываются в адресной части оператора, в котором реализуется ссылка. [20]
Для ссылки в одних объектах программы на другие используются символические наименования объектов, называемые обычно этикетками. Этими объектами в СИМП могут быть: операторы-команды, например, в операторах передачи управления; массивы данных; различные константы; отдельные рабочие ячейки или поля; индексные ячейки; базисные адреса; имена внешних устройств. Символические наименования при ссылке на объект записываются в адресной части оператора, в котором реализуется ссылка. [21]
Объектный модуль должен содержать информацию двух видов: таблицу внешних символических наименований и промежуточную форму программы на машинном языке, называемую двоично-символическим кодом. Таблица внешних символических наименований содержит все внешние символические наименования, к которым обращается модуль, и индикатор того, определяются они или нет в данном модуле. Двоично-символический код отличается от машинного кода тем, что с каждым обращением к символическому наименованию ассоциируется флажок и адреса неопределенных внешних символических наименований не введены. [22]
Действия, выполняемые на двух проходах ассемблера. [23] |
Здесь операнд определяет начало, а необязательная метка позволяет присвоить символическое наименование первой позиции ( ячейке) управляющей секции. Если начало не определено псевдокомандой ORG, оно будет считаться нулевым. Псевдокоманду ORG можно использовать несколько раз, но для задания начала используется только ее первое появление. [24]
При автоматическом программировании ( язык АП) программа записывается в терминах операторов - символических наименований для выполнения определенной ( для каждого оператора) совокупности действий. Операторная запись алгоритма по форме близка к обычной записи вычислений в математике. Эта запись затем вводится в машину и преобразуется в последовательность машинных команд с помощью транслятора. [25]
Объектам машинных алгоритмов ( константам, переменным, командам программы, операторам) присваиваются символические наименования. [26]
Загрузочный модуль также включает информацию двух видов: карту загрузки ( или таблицу связей символических наименований) и несколько измененный вариант двоично-символического кода, называемого двоично-переместимым кодом. Основные функции редактора связей заключаются в необходимой модификации двоично-символического кода и обработке таблиц внешних символических наименований объединяемых объектных модулей для получения карты загрузки. Карта загрузки определяет, в каком месте загрузочного модуля находится каждый объектный модуль. Хотя отличия между двоично-символическим кодом и двоично-переместимым кодом варьируются от системы к системе, простая процедура заключается в том, чтобы редактор связей предположил начало и заполнил все адреса внутренних и внешних символических наименований относительно этого начала. Флажки у каждого банта двоично-символического кода должны сохраниться, чтобы их мог использовать загрузчик. [27]
В управляющей секции, содержащей оператор с символическим наименованием ENTRY, записывается также оператор, имеющий символическое наименование EXTRN, в котором в пятых элементах строк записана последовательность от одного до ста меток операторов ( перемещаемых символических адресов) других ( внешних) управляющих секций, к которым осуществляется переход из данной секции. Метки, указанные в операторе EXTRN, не могут совпадать ни с одной из меток, применяемых в той управляющей секции, в которой этот оператор записан. [28]
Использование обшей области. [29] |
Более сложный метод определения общих областей позволяет вводить более одной области и разрешает разным подпрограммам использовать различные символические наименования при обращении к одним и тем же данным в определенной общей области. В принципе эта процедура аналогична назначению областей в подпрограммах на Фортране с помощью операторов COMMON. При необходимости иметь несколько областей каждой из областей присваивается имя. [30]