Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка (НСиНК) - лабораторные работы.doc
Скачиваний:
24
Добавлен:
15.04.2015
Размер:
356.35 Кб
Скачать

4. Контрольные вопросы

  1. Перечислите основные внутренние блоки процессора NM6403 и поясните их назначение.

  2. Какова разрядность интерфейса с внешней памятью процессора NM6403?

  3. Состав и назначение скалярного процессора.

  4. Перечислите основные элементы векторного процессора и поясните их назначение.

  5. Какова разрядность узлов векторного процессора?

  6. Как может быть сформировано и обработано слово упакованных векторных данных?

  7. Какие операции способен выполнять векторный процессор?

  8. Поясните суть операции взвешенного суммирования и приведите примеры её использования.

  9. Какие операции способно выполнять векторное АЛУ? Чем оно отличается от скалярного АЛУ?

  10. Каковы особенности выполнения операций на векторном АЛУ при возникновении переполнений?

  11. Чем определяется разбиение на элементы при операциях на рабочей матрице и на векторном АЛУ?

  12. Поясните суть операции маскирования с векторным умножением.

  13. Поясните суть операции логического маскирования, с какими операциями она используется?

  14. Поясните суть операции арифметической активации, с какими операциями она используется?

  15. Поясните суть операции логической активации, с какими операциями она используется?

  16. Поясните суть операции циклического сдвига вправо операнда Х, с какими операциями она используется?

  17. Каков порядок выполнения преобразований над данными на векторном процессоре?

Лабораторная работа № 3

Программирование нейромикропроцессора NeuroMatrix® NM6403 с использованием макросов

Цель работы: ознакомление с языком ассемблера нейромикропроцессора NeuroMatrix® NM6403 (Л18789 ВМ1) и правилами описания и использования макросов в программе.

1. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

По материалам разделов 2 и 3 изучить структуру, формат ассемблерных инструкций, структуру микрокоманд (МК), порядок ввода данных, кодирование и выполнение МК.

Ознакомиться с порядком ввода микропрограмм и исходными данными.

Выполнить упражнения по указанию преподавателя.

2. ИСПОЛЬЗОВАНИЕ МАКРОСОВ В ЯЗЫКЕ АССЕМБЛЕРА

2.1. Синтаксис

Определение макроса:

macro имя_макроса ( [параметр1 [, параметр2 ...]] )

последовательность_элементов

end имя_макроса;

Вызов макроса:

имя_макроса( [параметр1 [, параметр2 ...]] );

Объявление внешних макросов, импорт из макробиблиотек:

import [имя_макроса1 [, имя_макроса2 ...]] from

имя_библиотеки;

2.2. Описание

Здесь имя_макроса - произвольный идентификатор. Формальные параметры макроса (если макрос имеет параметры) также должны быть идентификаторами.

Текст внутри макроса должен быть последовательностью синтаксически полных элементов программы на языке ассемблера: объявлений, определений, инструкций, директив, вызовов макросов и пр. (за исключением секций). Полная синтаксическая и семантическая проверка тела макроса производится только при подстановке, с учётом контекста подстановки и фактических параметров вызова.

В качестве аргументов вызова макроса могут быть использованы:

  • регистры,

  • неопределённые идентификаторы,

  • константные выражения.

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

Примечание: передать в макрос известную программную сущность не по значению, а по имени невозможно. Нельзя, к примеру, передать в макрос имя переменной времени компиляции для её изменения внутри тела макроса.

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

macro entry_point( name )

<name>

nul 10;

call subroutine;

end entry_point;

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

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

Внутри тела макроса возможно использование блоков условной компиляции.

Запрещен явный и опосредованный рекурсивный вызов одного и того же макроса.