- •Лабораторная работа n 1 основы языка программирования пролог. Изучение среды turbo prolog.
- •Запустить Turbo Prolog
- •1.1 Основные понятия языка Турбо Пролог.
- •1.1.2. Факты
- •1.1. 3 . Запросы
- •1.2. Разделы программы на языке Турбо Пролог.
- •2. Среда turbo prolog 2.0.
- •2.1. Интерфейс среды Турбо Пролог 2.0.
- •2.1 Элементы главного меню и их функции:
- •2.3 Основные операции в среде Турбо Пролог.
- •2. 4 . Трассировка.
- •Лабораторная работа n 2 понятие правила и рекурсии. Встроенные предикаты.
- •1. Правила
- •1.1. Дерево вывода.
- •2. Рекурсия
- •3.Использование встроенных предикатов.
- •4. Задание для лабораторной работы
- •4.1. Варианты заданий
- •5. Контрольные вопросы.
- •Лабораторная работа № 3 интегрированная среда разработки visual prolog
- •1. Создание нового проекта.
- •2. Создание формы.
- •3. Работа с меню
- •4. Создание обработчиков нажатия на кнопку.
- •5. Задание для лабораторной работы
- •6. Контрольные вопросы.
- •2. Преобразование данных
- •3. Арифметические действия
- •Лабораторная работа № 5 построение нейросетевой экспертной системы
- •5.1. Цель работы
- •5.2. Методические указания
- •5.2.1. Постановка задачи
- •5.2.2. Критерии оценки
- •5.2.3. Ввод анализируемых данных
- •5.2.3.1. Использование файла запуска фактов
- •5.2.3.2. Использование протокола dde
- •5.3. Порядок выполнения работы
- •Лабораторная работа №6 Архитектура процессора NeuroMatrix ® nm 6403 и его функциональные возможности
- •6.3.2. Внешний интерфейс процессора
- •6.3.3. Общее описание внутренней структуры процессора
- •6.3.3.1. Описание основных элементов скалярного процессора
- •6.3.3.2. Описание основных элементов векторного процессора
- •6.3.4. Основные вычислительные блоки векторного процессора
- •6.3.4.1. Взвешенное суммирование
- •6.3.4.2. Выполнение операций на векторном алу
- •6.3.4.3 Операция маскирования
- •6.3.4.4 Обработка данных функцией активации
- •6.3.4.5 Циклический сдвиг вправо операнда х при взвешенном суммировании
- •6.3.4.6 Порядок выполнения преобразований над данными на вп
- •6.4. Описание и порядок пользования программой nmCalculator запустить nmCalculator
- •6.4.1 Общие сведения о программе
- •6.4.2 Формирование векторной команды
- •6.4.3 Разбиение рабочей матрицы и запись весовых коэффициентов
- •Контрольные вопросы
- •Лабораторная работа № 7 Программирование процессора NeuroMatrix ® nm 6403
- •7.2.3 Типы скалярных команд
- •7.2.4 Типы векторных команд
- •7.2.5 Регистры процессора
- •7.2.5.1 Основные регистры
- •7.2.5.2 Регистровые пары
- •7.3. Примеры простейших программ
- •7.4. Порядок выполнения работы
7.2.5 Регистры процессора
Все регистры процессора NM6403 можно разделить на группы:
адресные регистры;
регистры общего назначения;
специальные регистры;
векторные регистры.
7.2.5.1 Основные регистры
К основным регистрам процессора относятся адресные регистры и регистры общего назначения, то есть те, которые используются в большинстве вычислительных операций процессора.
Всего имеется 8 адресных регистров и 8 регистров общего назначения (см. Табл. 1-3). Все они 32-х разрядные, доступны как по чтению, так и по записи.
Табл. 1-3 Основные регистры процессора NM6403.
Адресные регистры |
Регистры общего назначения |
ar0 ar1 ar2 ar3 ar4 ar5 ar6 ar 7(sp) |
gr0 gr1 gr2 gr3 gr4 gr5 gr6 gr 7 |
Адресные регистры
Адресные регистры делятся на две равноправные группы. В первую входят ar0 .. ar3, а во вторую ar4..ar7. Это связано с наличием двух адресных устройств в процессоре.
Существуют ограничения на возможность использовать адресные регистры из разных групп в одной процессорной инструкции.
Адресные регистры могут использоваться только в левой части ассемблерной инструкции.
Примеры использования адресных регистров:
ar0 = ar5; // копирование.
ar2 = ar3 + gr3; // модификация.
[ar4++] = gr7 with gr7 -= gr4 ; // запись в память.
Адресный регистр ar7 используется процессором в качестве указателя стека адресов возврата sp(Stack Pointer). Это означает, что ar7 модифицируется автоматически, когда происходит вызов функции или прерывания, а также возврат из функции или из прерывания.
Регистры общего назначения
Регистры общего назначения в отличии от адресных не имеют разделения на группы, могут использоваться как в левой, так и в правой частях ассемблерной инструкции. С их помощью можно выполнять арифметические и логические преобразования, адресоваться по памяти.
Хотя регистры общего назначения могут использоваться для адресации по памяти, например:
[gr0] = gr4; // запись значения регистра gr4 в память
// по адресу, хранящемуся в gr0.
однако адресные регистры обладают в этом смысле значительно более широкими возможностями.
Примеры использования регистров общего назначения:
gr0 = gr5; // копирование.
gr2 = gr1 + gr3; // модификация.
[ar4++] = gr7 with gr7 -= gr4 ; // запись в память.
Примечание В процессоре NM6403 не предусмотрены специальные регистры для организации программных циклов.
7.2.5.2 Регистровые пары
Каждому адресному регистру поставлен в соответствие регистр общего назначения с тем же номером. Таким образом, образуются пары, которые в дальнейшем будут называться регистровыми парами.
Регистровые пары часто используются в инструкциях процессора, осуществляющих копирование, чтение/запись в память 64-х разрядных данных, некоторые виды адресных операций.
Приведем пример загрузки из памяти в регистровую пару 64-х разрядного значения:
ar0, gr0 = [ar1++]; // чтение 64-х разрядного слова.
Еще один пример использования регистровых пар встречается в некоторых методах адресации, например:
[ar0+=gr0] = gr4; // запись в память с модификацией.
Непарные регистры не могут использоваться в подобных операциях. Иными словами:
ar0, gr1 = [ar1++]; // неправильная инструкция.
[ar0+=gr1] = gr4; // неправильная инструкция.