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 Условное ассемблирование в AL/F Ассемблер AL/F, входящий в состав перфоленточной операционной системы, реализованной для микроЭВМ ВЭФОРМИКА , содержит две команды, выполняющие условное ассемблирование: IF и ENDIF. Если выражение в команде IF равно О, то операторы ассемблера, размещенные между командами IF и ENDIF, не транслируются. Если значение выражения не равно О, то в текст исходной программы включаются операторы, размещенные между командами IF и ENDIF. Самя команды IF и ENDIF не приводят к генерации машинных команд, они лишь определенным образом интерпретируются ассамблером. Пример: VAR SET Ш DAT: DS ЮОН IF VAR DS ЮОН ENDIF Установка значения IH для имени VAR позволяет зарезервировать дополнительных 100 Н байт памяти в программе, т. е. всего 200Н байт. Если директивой SET имени VAR было бы сопоставлено значение ОН, то в программе ассемблер выделил бы всего ЮОН байт памяти для массива DAT, 6.3. МАКРОСРЕДСТВА АССЕМБЛЕРОВ Макроопределение состоит из начального оператора, тела макроопределения и конечного оператора. Макроопределение должно быть обработано до вызова макрокоманды. Для того, чтобы можно было использовать одно и то же макроопределение в различных программах, его помещают в макробиблиотеку пользователя или системную. Макросредства языка ассемблера на микроэвм Электроника-бО в ОС ФОДОС Директива .MACRO. Формат директивы: .MAORO имя, параметры, где имя - имя макроопределения и макрокоманды в вызове;, - допустимый разделительный знак: запятая, пробел и (ИЛИ) символ ГТ (горизонтальная табуляция); параметры - последовательность допустимых символических имен, разделенных запятыми, пробелами и (ИЛИ) символами ГТ. Директива .ENDM. Формат директивы: .ENDM имя, где имя - имя макроопределения. В директиве .ENDM необязательно указывать имя макроопределения. Директивы .MACRO и .ENDM - директивы указания начала и конца макроопределения, соответственно. .MACRO позволяет указать имя макроопределения и список формальных параметров. Директива .MEXIT. Формат директивы; .MEXIT. Директива используется для завершения макроопределения до того, как встретится конечный оператор .ENDM. Пример: . MACRO ADM А, В, С ; МАКРООПРЕДЕЛЕНИЕ ADM. . IF OF SYMB ; НАЧАЛО БЛОКА УСЛОВНОЙ ТРАНСЛЯЦИИ. . MEXIT ; КОНЕЦ МАКРОРАСШИРЕНИЯ. . ENDC ; КОНЕЦ БЛОКА УСЛОВНОЙ ТРАНС- . ENDM ADM ; КОНЕЦ МАКРООПРЕДЕЛЕНИЯ, у В данном примере, если произойдет вход в блок условной трансляции, то директива .MEXIT будет завершать и блок условной трансляции, и макрорасширение, т. е. выполнится переход к обработке следующей команды, размещенной после вызова макрокоманды ADM. Вызов макрокоманды. Формат директивы: метка ; имя параметры, где имя-символическое имя, указанное в директиве .MACRO;, параметры - фактические параметры, заменяющие формальные, перечисленные в директиве .MACRO. Параметры разделяются запятой, пробелом и (ИЛИ) символом ГТ. Параметр может быть позиционным и ключевым. Первый фактический параметр в макрокоманде соответствует первому формальному параметру в макроопределении. Таким образом, между формальными и позиционными фактическими параметрами имеется взаимно однозначное соответствие. Пример: . MACRO REND А, В, С . ENDM REND REND (.WORD, 5,0), #40, DATA Фактические параметры макрокоманды REND являются позиционными. Устанавливается следующее соответствие между формальными и фактическими параметрами: Формальные параметры: Фактические параметры: А WORD, 5,0 В #40 С DATA Ключевые параметры содержат ключевое слово и записываются в виде: имя=последовательность символов, где имя - имя формального параметра (ключевое слово); последовательность символов- значение фактического параметра символов. В макрокоманде ключевой параметр указывается в любом месте последовательности фактических параметров и не влияет на позиционное соответствие остальных параметров. Ключевой параметр в макроопределении является частью позиционно упорядоченных формальных параметров и определяет значение параметра по умолчанию. Директивы генерации. Директивы генерации используются для изменения последовательности генерируемых при трансляции операторов, для определения числа параметров макрокоманды и знаков в строке, для определения метода адресации параметров. Директива .NARG. Формат директивы: .NARG имя, где имя - допустимое в языке ассемблер символическое имя. Директива размещается в макроопределении и связывает указанное в ией имя со значением, равным числу используемых в вызове макрокоманды фактических параметров. Директива .NCHR. Формат директивы: .NCHR имя, строка, где имя - допустимое в языке символическое имя; строка - строка печатных знаков; строка должна быть заключена в угловые скобки { > или ограничена знаками 7/ , если она содержит разделительные знаки , , пробел и (или) ГТ. Директива .NCHR может появляться в любом месте программы и присваивать указанному в ней имени значение, равное числу символов в строке. Директива .NTYPE. Формат директивы: .NTYPE имя, выражение, где имя - допустимое символическое имя; выражение - допустимое выражение метода адресации в том виде, как оно используется в операторе. Директива определяет для указанного имени значение, равное значению 6-битового метода адресации указанного параметра, Прижр: . NTYPE TYP, PARI . IFNE TYP &27 В данном примере переменной TYP присваивается значение метода адресации, используемого в операторах при записи в них выражения, к которому ссылаются через параметр PARI. Следующая директива .IF NE проверяет, не используется ли метод непосредственной адресации через счетчик команд (метод адресации - 010, номер регистра - III). Директива .ERROR. Формат директивы; метка : .ERROR, выражение, комментарий, где выражение - допустимое в языке выражение (необязательное). Директива .PRINT. Формат директивы: метка : PRINT, выражение, комментарий. Сообщения, выводимые по директивам .ERROR и PRINT содержат; символ Р , который печатается только в случае использования ди- |