Cтраница 2
Символы языка АССЕМБЛЕР делятся на три группы: метка, мнемокод и идентификатор - символические обозначения адреса команды, кода операции и адресов операндов в виде набора символических команд-операторов, каждая из которых занимает одну строку. Строка состоит из метки ( поля метки), мнемокода ( поля операции) и поля операндов, разделенных пробелами. В строку могут включаться и пояснения ( после комментариев) для программиста. [16]
Поля следуют одно за другим в заданном порядке и отделяются друг от друга ограничителями полей. Типичные ограничители - запятая после поля метки, пробел после кода операции, косая черта после поля адреса и маркер конец строки после поля комментария или поля адреса, если за ним не следует комментарий. [17]
Символы языка АССЕМБЛЕР делятся на три группы: метка, мнемокод и идентификатор - символические обозначения адреса команды, кода операции и адресов операндов в виде набора символических команд-операторов, каждая из которых занимает одну строку. Строка состоит из метки ( поля метки), мнемокода ( поля операции) и поля операндов, разделенных пробелами. В строку могут включаться и поясаения ( после комментариев) для программиста. [18]
Поля метки и комментария во всех случаях не обязательны. Поле операнда заполняется только для тех команд, которым требуется операнд; в противном случае его можно опустить. Квадратные скобки вокруг полей метки, операнда и комментария показывают, что эти поля не обязательны; ни в коем случае не набирайте эти скобки при вводе программ. [19]
Процедура FormActivate сначала вызывает процедуру ResetForm, которая, присваивая значение False свойству visible, делает невидимыми поля вывода альтернативных ответов и все переключатели. Аналогично делается невидимой область иллюстрации. Кроме того, процедура устанавливает максимально возможную ширину полей меток альтернативных ответов. [20]
False свойству via:: -, , делает невидимыми поля вывода альтернативных ответов и переключатели. Аналогично делается невидимой область иллюстрации. Кроме того, процедура устанавливает максимально возможную ширину полей меток альтернативных ответов. [21]
Поле LABEL ( Метка) не является обязательным. Метка - это обычный идентификатор ( или мнемоническое обозначение в языке ассемблера), представляющий собой последовательность букв и цифр, начинающуюся с буквы. Максимальная длина поля метки различна для разных ассемблеров; большинство полей имеет длину не менее шести символов. Подобно некоторым компиляторам с языка Паскаль, многие ассемблеры допускают использование полей меток произвольной длины, но распознают только первые шесть или восемь символов. [22]
Фортран-программы пишутся на специальных бланках, разделенных на строки, каждая из которых содержит по 72 колонки. Каждый оператор программы начинается с новой строки и может занимать одну или несколько строк. Позиции с 1 - й по 5 - ю отводятся под метки операторов, шестая позиция отводится под символ продолжения оператора, позиции с 7 - й по 72 - ю отводятся под символы собственно оператора. Если оператор занимает несколько строк бланка, то метка оператора помещается в первую из этих строк. Поля меток во всех последующих строках оператора должны содержать пробелы. Шестая позиция первой строки оператора должна содержать пробел, шестая позиция остальных строк оператора - любой символ, отличный от пробела, который воспринимается транслятором как признак продолжения оператора. [23]
Так как все перемещаемые адреса отсчитываются от начала программы, в счетчик размещения ( или программный счетчик) ( LC) первоначально устанавливается нуль. Затем операторы исходного текста читаются последовательно с устройства ввода. Каждый оператор исследуется в отдельности для того, чтобы приписать некоторую ячейку каждой машинной команде или данным, определяемым псевдооперацией, и таким образом определить значения символов, появляющихся в полях меток исходной программы. Это выполняется следующим образом. Сначала поле операции текущего оператора сопоставляется с таблицей псевдоопераций. В этой таблице перечислены мнемонические коды псевдоопераций, с каждой из которых связывается указатель подпрограммы ассемблера, обрабатывающей эту операцию. Если совпадение обнаружено, выполняется вызов соответствующей подпрограммы. Так как проход 1 связан только с псевдооперациями, которые определяют символы или влияют на счетчик размещения, такие псевдооперации, как USING, DROP или START, сразу приводят к передаче управления в точку, в которой анализируются поля метки ( 1 на рис. 5.2) и обработка продолжается. [24]