2.3. Использование меток в макросах
Использование меток в макросах имеет следующее ограничение: макрос, в теле которого содержится определение метки, может инстанцироваться только один раз, так как при последующих подстановках будет возникать ошибка повторного определения метки с тем же именем.
Для преодоления данного ограничения в языке существует механизм собственных меток макросов - метка, объявленная внутри макроса со спецификатором own, обрабатывается особым образом так, чтобы в каждой подстановке макроса данная метка имела уникальное среди всех подстановок данного макроса имя.
Например:
macro FEQ ( Res, Arg1, Arg2 )
extern FCmp :label;
own Cont :label;
ar5 = sp;
sp += 2;
[ ar5++ ] = Arg1;
[ ar5 ] = Arg2;
call FCmp;
if carry delayed skip Cont
with Res = false noflags;
sp -= 2;
// cond. skip Cont
if <>0 skip Cont;
Res++;
<Cont>
end FEQ;
Макрос FEQ(), использующий собственную метку Cont для организации внутреннего ветвления, может инстанцироваться более одного раза.
Использование спецификатора own при объявлении метки возможно только внутри тела макросов.
- Лабораторная работа № 1 Архитектура нейромикропроцессоров семейства NeuroMatrix® nm640х и их функциональные возможности
- 1. Описание и порядок пользования программой nmcalculator
- 1.1. Формирование векторной команды
- 1.2. Разбиение рабочей матрицы и запись весовых коэффициентов
- 1.3. Установка входных значений
- 1.4. Генератор кода
- 2. Порядок выполнения работы
- Лабораторная работа № 2
- 1. Указания к выполнению работы
- 2. Элементы языка ассемблера процессора nm6403
- 2.1. Формат ассемблерных инструкций
- 2.2. Векторные инструкции процессора
- 2.3. Регистры процессора
- 2.3.1. Основные регистры
- 3. Порядок выполнения работы
- 4. Контрольные вопросы
- Лабораторная работа № 3
- 2.3. Использование меток в макросах
- 2.4. Импорт макросов из макробиблиотек
- 3. Пример простейшей программы
- 4. Порядок выполнения работы
- Лабораторная работа № 4
- 1.2. Реализация алгоритма шифрования на процессоре nm6403
- Практическая часть
- 2.1. Реализация алгоритма гост 28147-89 на нейропроцессоре nm6403/6404
- 2.2. Реализация алгоритма гост 28147-89 на эмуляторе вектора векторных команд
- 2.3. Варианты заданий
- 2.4. Удаленный доступ к плате NeuroMatrix
- Библиографический список