Cтраница 2
Атрибут 5 - формируется только для тех линейных участков, которые завершаются оператором перехода GO TO, и содержит имя метки оператора, которому передается управление. [16]
Первый просмотр программы начинается с установки исходных значений переменных, используемых ассемблером, и резервирования памяти для таблицы символов, в которую ассемблер будет заносить имена меток. Счетчик адресов при этом устанавливается в нуль, так как ассемблер предполагает, что все программы начинаются с нулевого адреса памяти. Затем ассемблер просматривает слева направо каждую строку исходной программы, начиная с первой строки и кончая последней. Для каждой строки, содержащей оператор, ассемблер выполняет три основных действия. [17]
![]() |
Генератор единичных импульсов.| Простейший бесконечный цикл. [18] |
Имена меток подчинены правилам наименования переменных. [19]
Обычно с помощью двойного двоеточия имя метки объявляется глобальным в том модуле, где она определена. GLOBL служит для объявления имени метки глобальным символом в модуле, где оно используется, но не определяется. [20]
Для безусловной передачи управления в процедуре REXX предназначен оператор SIGNAL. В нем указывается символическое имя, совпадающее с именем метки, на которую осуществляется переход. [21]
После создания метки следует описанным способом создать гиперссылку. Вводя путь к файлу, в конце адреса укажите и имя метки 111, как показано на рис. 14.8. Теперь при двойном щелчке мышью на слове, с которым связана гиперссылка, указанный в адресе файл откроется с того места, на которое установлена метка. [22]
Метка генераторного перехода описывается на поле метки оператора исходной программы, начиная с 1 - й позиции. В отличие от обычных мечок машинных команд, констант и полей имя метки генераторного перехода начинается с точки, вслед за которой может быть записано от одной до семи букв или цифр. Сразу после точки должна следовать буква. [23]
Метка всегда устанавливается перед оператором, на который необходимо будет передать управление. Для перехода на нужную метку используется оператор goto, за которым следует имя метки. [24]
Во многих случаях макрокоманда будет содержать цикл, в результате чего могут потребоваться одна или более меток для операторов, генерируемых макрокомандой. Если макрокоманда вызывается более одного раза, то может возникнуть необходимость повторения имен меток. Это осуществляется с помощью локальных меток, которые могут использоваться как в макрокомандах, так и в других местах программы. [25]
Чтобы передать управление оператору, его необходимо пометить. Для этого перед ним ставится метка, отделенная от оператора двоеточием. Имя метки выбирается по общим правилам записи идентификаторов. [26]
Метка ставится в начале любой цепи, являясь, по сути, названием данной цепи. Цепь может содержать только одну метку. Имена меток подчинены общим правилам наименования идентификаторов МЭК. Графический редактор автоматически нумерует цепи диаграммы. Эта нумерация применяется исключительно для документирования и не может заменять метки. [27]
Оператор goto позволяет перейти на предварительно объявленную метку. После имени метки ставится двоеточие. [28]
В этом случае обработку ошибки выполняет сам Access. Этот код универсален, и его можно использовать в качестве шаблона при создании самых разных программ. Имена меток, разумеется, можно придумать свои, данные имена сгенерированы автоматически, и поэтому они такие длинные и неудобочитаемые. На время отладки программ бывает полезно отключать команду On Error для того, чтобы при возникновении ошибки можно было сразу перейти в редактор Visual Basic и отладить код. Приведенный выше листинг можно использовать как заготовку для создания любых процедур обработки событий. [29]
В некоторых случаях невозможно определить тип адресного выражения. Например, DEC [ BX ] может быть интерпретировано, не только как декрементировать байт, адресуемый ВХ, но и как декрементировать слово. Такие адресные выражения называются анонимными ссылками. Иногда может возникнуть необходимость в применении некоторого объекта по назначению, отличному от того, которое предписано его типом, например осуществить переход по значению переменной или использовать имя метки в качестве переменной для организации доступа к программному коду, как к обычному элементу данных. Во всех этих ситуациях появляется необходимость в явном определении типа адресного выражения. [30]