Cтраница 3
Текст исходного модуля печатается вместе с порядковыми номерами, присвоенными операторам во время трансляции. Этот текст может содержать сообщения об ошибках в операторе модуля непосредственно за этим оператором. Под теми символами оператора, при анализе которых транслятор не может истолковать оператор как правильный, печатаются знаки & В следующих строках печатаются сообщения об ошибках в этом операторе вместе с их порядковыми номерами. Ошибки, которые нельзя отнести к какому-то конкретному оператору, перечисляются после текста исходного модуля. [31]
Распечатка исходного модуля содержит тексты операторов с номерами, присвоенными транслятором. Если во время трансляции действовал режим SRCFLG, эта распечатка содержит также сообщения об ошибках, следующие за ошибочными операторами. [32]
Текст любого исходного модуля, входящего в программу на языке ассемблера, рекомендуется разбивать на несколько частей: вводную, описательную и основную. В вводной части указывается назначение исходного модуля и другая дополнительная информация, например фамилия программиста и дата создания программы. [33]
В исходном модуле может быть несколько предложений USING. Информация, доставляемая операндами каждого предложения USING, используется Ассемблером при переработке неявных адресов, входящих в операнды машинных команд, следующих за данным предложением USING по написанию. [34]
В любом исходном модуле, но обычно в том же файле, где находится остальная часть кода данной формы. [35]
Ассемблер транслирует исходный модуль в два приема. Сначала он присваивает символическим именам адресов некоторые целые значения. Эти значения используются только в период трансляции исходного модуля. Значения символических имен вычисляются транслятором следующим образом. При трансляции программы Ассемблер заводит специальную переменную СА ( Счетчик Адреса), принимающую целые неотрицательные значения. В начале первого просмотра исходного модуля переменной СА присваивается некоторое целое значение, кратное 8; это значение указывает автор исходного модуля командой START. Большею частью начальное значение СА полагают равным нулю. [36]
Трансляторы преобразуют исходный модуль в объектный и помещают его в выходной набор данных. В ходе трансляции в отдельном выходном наборе данных могут формироваться текст исходной программы ( листинг) и диагностические сообщения для последующей выдачи на печать. [37]
С - исходный модуль написан с применением 48-сим-вольного алфавита. [38]
Элементом библиотеки исходных модулей является исходный модуль - книга. [39]
Операции трансляции исходного модуля выполняются программой ассемблера однократно, при этом исходный модуль должен быть представлен на языке ассемблера. Выражения операндов всегда вычисляются во время процесса трансляции. Когда встречаются операторы и - помните, что операции сложения и вычитания выполняются на этапе трансляции, а не при прогоне программы. [40]
Переработка команд исходного модуля, в которых употреблены неявные адреса, в команды объектного модуля выполняется Ассемблером по более сложным правилам, чем переработка команд, содержащих явные адреса. [41]
При трансляции исходного модуля ( см. рис. 24) Ассемблер думал1, что базовый адрес равен 000004, адрес LE равен 00001 А, адрес STORERS равен 00001С, и на этом основании вычислял смещения при переработке неявных адресов. [42]
При написании исходного модуля программист может разбить его на секции. Разбиение исходного модуля на секции может оказаться целесообразным по разным причинам. [43]
![]() |
Разбиение на перемежающи - [ IMAGE ] Пример структуры исход-еся секции ного модуля. [44] |
Последним предложением исходного модуля должна быть команда секционирования END. В исходном модуле должно быть только одно такое предложение. В поле названия предложения END должны стоять пробелы, а в поле операндов - символическое имя или пробелы. Символическое имя в поле операндов указывает адрес команды, которой будет передано управление от операционной системы в момент запуска программы. Если в поле операндов предложения END остались пробелы, то управление в момент запуска программы будет передано первому предложению первой программной секции. [45]