Снос зданий:
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 содержат; символ Р , который печатается только в случае использования ди-



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