- •Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
- •«Вычислительные машины, системы и сети»
- •Оглавление
- •Требования к оформлению отчетов по лабораторным работам
- •Лабораторная работа №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. Ассемблерные инструкции микропроцессора
7.2 Инструкции сдвига
Рассмотрим пример программы:
Задание: Разработать программу, формирующую новую строку их заданной строки. Каждый символ из заданной строки в новой строке удваивается.
.include "p33FJ256GP710.inc"
.equ msg_out, 0x800 ;начальный адрес новой строки
.text
msg_in: .ascii "Миру - мир!"
.global __reset
__reset:
mov #tblpage(msg_in), W0
mov W0, PSVPAG
mov #tbloffset(msg_in), W6
mov #msg_out, W7
do #5, end
tblrdl.b [W6++], W2
tblrdl.b [W6++], W3
sl W2, #8, W4
ior W4, W2, W4
mov W4, [W7++]
sl W3, #8, W4
ior W4, W3, W4
mov W4, [W7++]
end: nop
nop
.end
Строка msg_inрасполагается в памяти программ. Для того чтобы ее прочитать/записать, необходимо воспользоваться специальными командами:TBLRDL,TBLRDH,TBLWTL,TBLWTH– первые из них предназначены для чтения младшего слова и старшего слова, две последние для записи соответственно. Для корректной работы данных инструкций сначала необходимо записать старшую часть адреса в регистрPSVPAG, и младшую часть адреса строки в любой рабочий регистр (как показано в примере). Для чтения/записи слова (16 бит) используют синтаксис <TBLRDL>, для чтения/записи байта (8 бит) используют синтаксис <TBLRDL.B>. Команды в примере:SL,IOR,MOV– выполняют требуемое задание, т.е. удваивают символ и записывают в новую строку.
Программа работы и последовательность выполнения
Создайте новый проект. Процессор – dsPIC33FJ256GP710.
Подключите необходимые библиотеки.
Подключите отладчик (симулятор), встроенный в среду MPLABIDE.
Разработать программу, выполняющую преобразование введённой строки по алгоритму указанному в таблице в соответствии с номером варианта
Открыть окно Watchи внести в него все регистры, которые используются в коде. В пошаговом режиме отладить код, контролируя изменение регистров в окнеWatch. После отладки программы, показать код и результаты работы программы преподавателю.
Создать блок схему программы.
Подготовить отчет.
№ Варианта
|
Задание
|
1 |
Первый символ копируется один раз, второй – дублируется, третий – утраивается, четвёртый – копируется четыре раза, пятый – копируется пять раз, шестой – один раз, седьмой – два раза и т.д. |
2 |
Все символы «пробел» удаляются из исходной строки, остальные символы – копируются. |
3 |
Первый символ копируется четыре раза, второй – три раза, третий – два раза, четвёртый – один раз, пятый – четыре раза, шестой – три раза, седьмой – два раза и т.д. |
4 |
Все символы с нечётными индексами копируются три раза, остальные – копируются один раз. |
5 |
Все символы цифр от нуля до девяти утраиваются, остальные – копируются один раз. |
6 |
Каждый третий символ строки удваивается, остальные – копируются один раз. |
7 |
Все символы цифр от трех до восьми копируются два раза, остальные – копируются один раз. |
8 |
Все символы с чётными индексами удаляются из строки, остальные – копируются один раз. |
9 |
Все символы цифр от нуля до девяти удаляются из строки, остальные – копируются один раз. |
10 |
Все прописные буквы латинского алфавита заменяются строчными буквами. Остальные символы копируются. |
11 |
Каждый четвёртый символ строки копируется четыре раза, остальные – копируются один раз. |
12 |
Все символы заглавных букв латинского алфавита утраиваются. |
13 |
Все символы с нечётными индексами удваиваются, остальные копируются. |
14 |
Все прописные буквы латинского алфавита удваиваются, остальные символы копируются. |
15 |
Все символы цифр от нуля до девяти удваиваются, остальные копируются. |