Снос зданий:
ecosnos.ru
Главная  Микроустройства: номенклатура изделий электронной промышленности 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 [ 61 ] 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

рективы .ERROR; текущее значение счетчика адреса; значение выражения, указанного в директиве; исходный оператор. Директива .MCALL. Формат директивы:

.MCALL имя 1, имя 2, имя N.,

где имя i - имена макроопределений из макробиблиотек (t =~ = 1, 2, N), Директива обеспечивает доступ в макробиблиотеку пользователя и системную библиотеку. Она объявляет имена макроопределений, которые будут использованы в программе.

Макросредства ассемблера микроЭВМ ВЭФОРМИКА в операционной системе ДОС/ F

Макросредства, реализованные в ДОС/F, представляют собой полный препроцессор и предназначены для макрообработки любых символьных текстов. Однако макроязык в значительной степени ориентирован на использование с ассемблером микроЭВМ ВЭФОРМИКА .

Макроопределение. Макроопределение указывается операторами MDEF и MEND. Первый оператор задает имя макрокоманды и список параметров. За этим оператором могут размещаться команды ассемблера и операторы макросредств. Они образуют тело макроопределения. Конец тела макроопределения отмечается оператором MEND: t-имя-макрокоманды MDEF

список-параметров тело макроопределения MEND.

Параметры в списке параметров разделяются -запятыми. Символ ; ограничивает просмотр текста. В расширенный текст все сим-. волы, начиная с символа ; и до конца строки, не поступают. Таким образом, в макроопределениях можно размещать комментарий, который не расширяется в выводной поток.

Вызов макрокоманды. Чтобы выполнить расширение текста, записывают вызов макрокоманды, используя имя макрокоманды и список аргументов.

Пример:

MCN MDEF &Р1, &Р2

MOV &PI, &Р2; ТЕЛО МАКРООПРЕДЕЛЕНИЯ.

К7: MCN М, А MCN В, М

В'расширенный текст в результате обработки двух вызовов макрокоманды MCN поступит следующий текст:

К7: MOV М, А MOV В, М

В теле макроопределения может размещаться вызов другой макрокоманды, называемой вложенной макрокомандой. В общем случае

?юрмат макрокоманды следующий: [метка -:] имя-макрокоманды список аргументов]; где символы [ и ж] охватывают необязательные элементы.



Параметры. Параметры обозначаются буквенно-цифровыми идентификаторами С лидирующим символом &, например, &PAR1, &А03, &GAMA. Параметры перечисляются в операторе MDEF и могут размещаться в любом месте тела макроопределения. Запись &PAR. ABC означает, что в данном месте макроопределения вместо символа &PAR должен быть подставлен соответствующий аргумент, за которым размещаются символы АБС . Значениями параметров могут быть: арифметические и си.мвольные константы, например, 2EFH, 1770, 10D, NAME, D1, знаковые константы, например, А -Ь В - С', ABC DE, список элементов, представляющих арифметические, символьные или знаковые константы; элементы списка разделяются запятыми, а весь список охватывается круглы-и скобками, например, (А+В', 3D, NAM). Для обращения элементу списка параметр индексируется; в теле макроопределения используется запись вида &PAR (I).

Переменные макропериода. В макроопределениях допустимо использование локальных и глобальных переменных, которые используются для хранения промежуточных результатов вычисления выражений в процессе макрообработки и для обмена информацией между макрокомандами. Локальные переменные объявляются оператором макросредств LOG, а глобальные переменные - оператором GLOB, например, LOG &VAR1, &VAR2 и QLOB &VAR10, &VAR 20 (100). В последнем случае объявлен массив глобальных переменных & VAR20. элементу массива обращаются указанием индексированной переменной, например: & VAR 20 (J).

Локальные переменные макропериода используются только в пределах одного макроопределения и теряют свои значения, когда вызывается другая макрокоманда. Глобальные переменные сохраняют свои значения для всех макроопределений.

Операторы макропериода. Операторы определения глобальных и локальных переменных имеют следующий формат:

GLOB список-переменных, LOG список-переменных.

Начальным значением локальным и глобальным переменным присваивается арифметическая константа 0.

Оператор присваивания выполняет назначение текущих значений переменным и параметрам:

MSET операнд-выражение,

где операнд - параметр, переменная или индексированная переменная; выражение - арифметические, символьные и знаковые константы, параметры, локальные и глобальные переменные, функции макропериода, разделенные анаками операций макропериода. Пример:

GLOB &GVAR1, &GVAR2

MSET & GVAR 1 = 60

MSET & GVAR 2 = & GVAR2 + 10

Если в теле макроопределения содержатся перечисленные выше операторы, то при каждом очередном вызове макрокоманды переменные &GVAR1 и &GVAR2 будут получать следующие значения:

StGVAR : 60. 50, 50, ... 8(GVAR2 : 10, 20, 30. ...

т



Оператор безусловного перехода осуществляет безусловный переход на оператор с указанным именем генераторного перехода:

MGO имя-генераторного-перехода.

Имя-генераторного-перехода - это последовательность от Одной до семи букв илн цифр, начинающаяся с буквы с лидирующим символом % , например, % MCR, % F100. Генераторный переход должен осуществляться только на операторы макропериода. 11 Оператор условного перехода вычисляет значение указанного в ием выражения. Если выражение имеет значение О, то следующим обрабатывается оператор, идущий за оператором MCOIF. Если значения выражения отличие от О, то следующим обрабатывается оператор, названный именем перехода. Формат оператора условного перехода:

MGOIF выражение, имя-генераторного-перехода.

Операторы MGO и MQOIF могут указывать переходы либо к другим операторам макропериода, либо к обычной текстовой информации, содержащейся в макроопределении. в последнем случае, если требуется пометить переход, используется пустой оператор MNOP. Его формат следующий:

имя-генераторного-перехода MNOP.

Операторы MGOIF, MGO, MNOP позволяют генерировать нужную часть макроопределения требуемое число раз. Используя оператор MSET и перечисленные выще операторы, можно организовать циклы.

Пример:

МРОР MDEF & А, & в /oFl MGOIF &А eqo, o/ fnD MSET & A =& A- I POP & в MGO о/ц Fl % FND MEND

Макрокоманда МРОР позволяет организовать требуемое число раз расширение в выводной текст команды ассемблера POP. Например, если в тексте программы будет размещен вызов МРОР 4, D, то в результате его обработки сгенерируется следующий текст:

POP D POP D POP D POP D

Выражения. в качестве операндов в выражениях могут использоваться явно заданные арифметические, символьные и знаковые константы, параметры, локальные и глобальные переменные; функции определения типа, длины, выделения подстроки и логического сдвига. Операции, допустимые в выражениях, следующие: арифметические: сложение (+), вычитание (-), умножение (), деление (/), вычисление остатка (MOD); логические: логическое сложение OR), умножение (AND), исключающее или (XOR), отрицание ЮТ); отношения: равно (EQ), не равно (ne), меньше чем Т), меньше или равно (le), больше чем (GT), больше или авио (ge); конкатенации (!).



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 [ 61 ] 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95