- •Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
- •«Вычислительные машины, системы и сети»
- •Оглавление
- •Требования к оформлению отчетов по лабораторным работам
- •Лабораторная работа №1. Изучение программной среды mpladide. Введение в язык ассемблер.
- •Цель работы
- •Содержание работы
- •1.1 Создание нового проекта
- •1.2 Подключение библиотек и упаковочных файлов процессора
- •1.3 Создание файла с исполняемым кодом
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •2.3 Битовые операции
- •2.4 Логические операции
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •3.3 Инструкция вычитания
- •Синтаксис:
- •3.4 Инструкция деления
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •4.2 Инструкции сравнения
- •4.3 Инструкции переходов
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •Лабораторная работа №5. Работа со стеком.
- •Цель работы
- •Содержание работы
- •5.1 Помещение в стек
- •Примеры помещения в стек
- •5.2 Извлечение из стека
- •Примеры извлечения из стека
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •6.2 Расчет зависимости.
- •Данную программу можно записать более компактно:
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •7.2 Инструкции сдвига
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •8.2 Сортировка обменом (метод пузырька)
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •9.2 Поиск с предварительным анализом
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •Контрольные вопросы
- •11.2 Rot13.
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •12.2 Вычисление crc
- •Прямой табличный алгоритм crc16
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •Лабораторная работа №13. Синтез сигналов специальной формы
- •Цель работы
- •Содержание работы
- •Программа работы и последовательность выполнения
- •Контрольные вопросы
- •Список литературы
- •Приложение 1. Ассемблерные инструкции микропроцессора
Программа работы и последовательность выполнения
Создайте новый проект. Процессор – dsPIC33FJ256GP710.
Подключите необходимые библиотеки и перепишите программу, приведенную выше.
Необходимо подключить отладчик (симулятор), встроенный в среду MPLABIDE. Выберете в меню <Debugger\SelectTool\MPLABSIM>.
Реализовать код, выполняющий битовые операции.
№ Варианта
|
Задание | |||||
Установить |
Сбросить |
Инвертировать
| ||||
Регистр |
Бит |
Регистр |
Бит |
Регистр |
Бит | |
1 |
W1 |
15 |
W2 |
0 |
W3 |
3 |
2 |
W2 |
14 |
W3 |
2 |
W4 |
1 |
3 |
W3 |
13 |
W4 |
4 |
W5 |
2 |
4 |
W4 |
12 |
W5 |
6 |
W6 |
5 |
5 |
W5 |
11 |
W6 |
8 |
W7 |
4 |
6 |
W6 |
10 |
W7 |
10 |
W8 |
7 |
7 |
W7 |
9 |
W8 |
12 |
W9 |
6 |
8 |
W8 |
8 |
W9 |
14 |
W0 |
9 |
9 |
W9 |
7 |
W0 |
15 |
W1 |
8 |
10 |
W0 |
6 |
W1 |
13 |
W2 |
10 |
11 |
W1 |
5 |
W2 |
11 |
W3 |
12 |
12 |
W2 |
4 |
W3 |
9 |
W4 |
11 |
13 |
W3 |
3 |
W4 |
7 |
W5 |
15 |
14 |
W4 |
2 |
W5 |
5 |
W6 |
14 |
15 |
W5 |
1 |
W6 |
3 |
W7 |
0 |
Открыть окно Watchи внести в него все регистры, которые используются в коде. В пошаговом режиме отладить код, контролируя изменение регистров в окнеWatch. После отладки программы, показать код и результаты работы программы преподавателю. Создать блок схему программы.
Реализовать код, выполняющий заданную логическую функцию. Переменные a,b,cимеют разрядность 16 бит.
Выполнить пункт 5 для второй программы.
Подготовить отчет в соответствии с требованиями, изложенными на стр. 3.
№ Варианта
|
Логическая функция
|
1 |
d = (a and 0x000F) or (b and 0x00F0) or (c and 0x0F00) |
2 |
d = [not(a and 0x0F00)] or (b and 0x00F0) or (c and 0x000F) |
3 |
d = (a or 0x000F) and (b or 0x00F0) and (c or 0x0F00) |
4 |
d = [not(a)] or (b and 0x00F0) or (c and 0x0F00) |
5 |
d = (a and 0x00F0) or [not(b) and 0xF000] or (c and 0x0F00) |
6 |
d = [not(a) or b] and [c or 0x0F00] |
7 |
d = (a and b) or (c and 0xAAAA) |
8 |
d = (a and 0xAAAA) or (b and 0x5555) or c |
9 |
d = [not(a and c)] or (b and 0x3333) |
10 |
d = (a and 0x8888) or (b and 0x6666) or (c and 0x1111) |
11 |
d = not(a) or (b and 0xF0F0) or (c and 0x0F0F) |
12 |
d = not[not(a and b) or (c and 0x5A5A)] |
13 |
d = [not(a) and 0x000F] or [not(b) and 0x00F0] or [not(c) and 0x0F00] |
14 |
d = (a and 0x0FF0) or b or not(c) |
15 |
d = [not(a) and not(b)] or c |
Контрольные вопросы
Назначение рабочих регистров, как обозначаются?
Назовите регистры, которые управляют работой АЦП, таймером, портом ввода вывода A?
Назовите основные битовые инструкции.
Назовите основные логические инструкции.
Поясните операции:
mov #0xA, W1
and W1, W2, W3
ior W4, W5, W6
xor W7, W8, W9
bsetW1, #7
bclrW2, #15
btgW3, #1
Лабораторная работа №3. Арифметические инструкции.
Цель работы
Изучить и приобрести практические навыки с командами пересылки данных и арифметическими инструкциями.
Содержание работы
К основным арифметическим операциям относятся.
Сложение – ADD
Вычитание – SUB
Умножение – MUL
Деление – DIV
Инкремент – INC, INC2
Декремент – DEC, DEC2
Синтаксис написания арифметических инструкций приведен в приложении А, таблица 2.
3.1 Инструкция сложения
Синтаксис:
Синтаксис:
{label:} |
ADD{.B} |
Wb,
|
Ws, [Ws], [Ws++], [Ws--], [++Ws], [--Ws], |
Wd [Wd] [Wd++] [Wd--] [++Wd] [--Wd] |
Операнды: Wb [W0 ... W15]
Ws [W0 ... W15]
Wd [W0 ... W15]
Операция: (Wb) + (Ws)Wd
Изменяемые биты регистра STATUS:DC,N,OV,Z,C
Пример:
ADD.BW5,W6,W7;
Складывает W5 иW6, результат записывается вW7 (8-ми битовый режим).
ADDW5,W6,W7;
Складывает W5 иW6, результат записывается вW7 (16-ти битный режим).
3.2 Инструкции умножения
Синтаксис:
{label:} |
MUL.SS |
Wb, |
Ws, |
Wnd [Ws] [Ws++] [Ws--] [++Ws] [--Ws] |
Операнды: Wb[W0 …W15]
Ws[W0 …W15]
Wnd[W0,W2,W4 …W12]
Операция: знаковое (Wb) * знаковое (Ws)Wnd:Wnd+ 1
Изменяемые биты регистра STATUS: нет
Пояснение: При умножении WbиWsрезультатом является 32-х битное слово. Результат умножения записывается вWnd(младшее слово) иWnd+1 (старшее слово).
Пример:
MUL.SSW0,W1,W12
Умножение W0 иW1, результат записывается вW12:W13.
MUL.SSW2, [--W4],W0
1. Содержимое регистра W4 уменьшается на единицу.
2. Умножается число из регистра W2 с числом расположенным в ячейке памяти, адрес которой содержится в регистреW4.
3. Результат записывается в W0 (младшее слово) иW1 (старшее слово).