- •Содержание
- •1. Теоретическая часть 17
- •1. Теоретическая часть 37
- •Лабораторная работа № 1 системы счисления. Построение алгоритмов решения задач
- •1. Теоретическая часть
- •1.1. Основные сведения
- •1.1.2. Перевод чисел из одной формы в другую.
- •1.1.3. Формы представления чисел.
- •1.1.4. Операции над числами.
- •1.1.5. Алгоритмы.
- •2. Порядок выполнения работы
- •3. Содержание отчета
- •Контрольные вопросы
- •5. Литература
- •Лабораторная работа № 2 изучение однокристальных 8-ми разрядных микропроцессоров на примере микропроцессора кр580
- •1. Теоретическая часть
- •1.1. Общие сведения о мп к580.
- •1.2. Структура мп к580.
- •1.3. Система и формат команд мп к580.
- •1.4. Учебный микропроцессорный комплект к580.
- •2. Подготовка к выполнению работы
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •6. Литература
- •Лабораторная работа № 3 изучение однокристальных микропроцессоров на примере микропроцессора кр1810
- •1. Теоретическая часть
- •1.1. Общие сведения о мп кр1810.
- •1.2. Структура мп кр1810
- •1.3. Способы адресации
- •1.4. Система и формат команд мп к1810
- •2. Подготовка к выполнению работы
- •3. Порядок выполнения работы
- •Программа
- •4. Содержание отчета
- •5. Контрольные вопросы
- •6. Литература
- •Лабораторная работа № 4 изучение секционных микропроцессоров на примере микропроцессорного комплекта км1804
- •1. Краткие теоретические сведения
- •1.1. Микропроцессорная секция параллельной обработки информации
- •1.2. Операции, выполняемые в мпс.
- •1.3. Схемы управления адресом микрокоманды кр1804ву1, кр1804ву2
- •1.4. Схема управления следующим адресом кр1804вуз.
- •1.5. Формат микрокоманды
- •1.6. Микротренажер для изучения мпк км1804
- •2. Подготовка к выполнению работы
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •6. Литература
3. Порядок выполнения работы
Работа выполняется на учебной микроЭВМ.
3.1. Порядок выполнения работы рассмотрим на примере программ по вычислению функции F (пример 1) и сортировки массива (пример 2).
Пример1.
Найти значение
функции
,
где А,В,С – 3-х байтные числа и расположены в памяти. Результат сохранить на место А. А=54А316, В=7594FF, C=2АВ048
Расширенный алгоритм программы представлен на рисунке 2.3. Программа, построенная в соответствии с алгоритмом, приведена в таблице 2.9.
Р
ис
2.3. Алгоритм программы
Таблица 2.9
Программа нахождения значения функции
Адр |
Мнемокод |
Код |
Примечание |
Загрузка операндов |
|||
0900 |
|
16 |
Загрузка трехбайтного числа А начиная с младшего байта. |
0901 |
|
A3 |
|
0902 |
|
54 |
|
0910 |
|
FF |
Загрузка трехбайтного числа В начиная с младшего байта. |
0911 |
|
94 |
|
0912 |
|
75 |
|
0920 |
|
48 |
Загрузка трехбайтного числа С начиная с младшего байта. |
0921 |
|
B0 |
|
0922 |
|
2A |
|
Загрузка программы |
|||
0800 |
LXI H, 0920 |
21 |
Запись в регистры HL число 0920 (адрес ячейки памяти хранения младшего байта первого операнда, участвующего в операции) |
0801 |
|
20 |
|
0802 |
|
09 |
|
0803 |
LXI B, 0910 |
01 |
Запись в регистры ВС число 0910 (адрес ячейки памяти хранения младшего байта второго операнда, участвующего в операции) |
0804 |
|
10 |
|
0805 |
|
09 |
|
0806 |
MVI D, 03 |
16 |
Загрузка числа 3 в регистр D (формирование счетчика, для отсчета байтов в операции) |
0807 |
|
03 |
|
0808 |
LDAX, B |
0A |
Косвенная загрузка аккумулятора из BC-пары |
0809 |
ANA M |
A6 |
Операция «и» между содержимым аккумулятора и ячейки памяти, адрес которой содержится в HL-паре |
080A |
CMA |
2F |
Дополнение аккумулятора (инверсия) |
080B |
STAX, B |
02 |
|
080C |
DCR, D |
15 |
Вычитание содержимого счетчика. |
080D |
JZ 0815 |
CA |
Если счетчик равен нулю, т.е. операция была проведена со всеми байтами операндов, перейти на следующую операцию. |
080E |
|
15 |
|
080F |
|
08 |
|
0810 |
INX, H |
23 |
Перейти к следующей ячейке памяти, адрес которой содержится в HL-паре(содержится следующий байт операнда) |
0811 |
INX, B |
03 |
Перейти к следующей ячейке памяти, адрес которой содержится в ВС-паре (содержится следующий байт операнда). |
0812 |
JMP, 0808 |
C3 |
Безусловно вернуться на повторение операции |
0813 |
|
08 |
|
0814 |
|
08 |
|
0815 |
LXI H, 0900 |
21 |
Запись в регистры HL число 0900 (адрес ячейки памяти хранения младшего байта первого операнда, участвующего в операции) |
0816 |
|
00 |
|
0817 |
|
09 |
|
0818 |
LXI B, 0910 |
01 |
Запись в регистры ВС число 0910 (адрес ячейки памяти хранения младшего байта второго операнда, участвующего в операции, результат предыдущей операции) |
0819 |
|
10 |
|
081A |
|
09 |
|
081B |
MVI D, 03 |
16 |
Загрузка числа 3 в регистр D (формирование счетчика, для отсчета байтов в операции) |
081C |
|
03 |
|
081D |
LDAX, B |
0A |
Косвенная загрузка аккумулятора из BC-пары |
081E |
ADD M |
86 |
Операция сложения между содержимым аккумулятора и ячейки памяти, адрес которой содержится в HL-паре |
0825 |
MOV M,A |
77 |
Косвенное сохранение аккумулятора в HL-пару |
0826 |
DCR, D |
15 |
Вычитание содержимого счетчика. |
0827 |
JZ, 082F |
CA |
Если счетчик равен нулю, т.е. операция была проведена со всеми байтами операндов, перейти на следующую операцию. |
0828 |
|
2F |
|
0829 |
|
08 |
|
082A |
INX, H |
23 |
Перейти к следующей ячейке памяти, адрес которой содержится в HL-паре(содержится следующий байт операнда) |
082B |
INX, B |
03 |
Перейти к следующей ячейке памяти, адрес которой содержится в ВС-паре (содержится следующий байт операнда). |
082C |
JMP, 081D |
C3 |
Безусловно вернуться на повторение операции |
082D |
|
1D |
|
082E |
|
08 |
|
082F |
HLT |
76 |
Останов |
3.2. Выполнение работы на УМК.
Включить УМК, нажав клавишу «~».
Если на табло индикации присутствует информация, нажмите клавишу «СБ» (сброс), в результате чего на табло будет гореть знак «–» в крайнем левом разряде.
2. Введите ваши данные в память УМК, начиная с адреса 090016. Для этого используйте команду «П» – чтение и изменение содержимого памяти, т.е. нажмите клавишу «П», затем наберите на клавиатуре 0900 16. Нажмите «ВП», тем самым вы введете в память УМК первую команду программы примера.
Введите все байты ваших переменных, повторяя команду «П»:
«П» 0901 02 «ВП»
«П» 0902 0Е «ВП» и т.д.
Примечание: Можно производить запоминание не по командам, а целыми блоками. Для этого вместо «ВП» набрать тем самым перейдя к следующей ячейке. Завершается набор блока командой «ВП».
3. Введите вашу программу в память УМК, начиная с адреса 080016.
4. Проверьте содержимое памяти, куда записана ваша программа, используя команду «П», т.е.
«П»
0800
на табло отразится содержимое ячейки
памяти. Если память содержит ошибочный
код, то измените только соответствующую
ячейку памяти.
Например, ячейка 0805 содержит код 18 вместо 04. Изменить ее следующим образом: «П» 0805 04 «ВП».
5. Выполните программу. Для этого передайте управление программе примера, т.е. наберите команду
-
«СТ» 0800
082F «ВП»
адрес начала программы
адрес прерывания программы, т.е. адрес команды HLT в программе примера
В результате выполнения этой команды в режиме ШГ светодиодная индикация панели будет следующая Адрес и данные, расположенные по этому адресу в двоичном коде. Дальнейшее выполнение производится путем нажатия клавиши ШГ.
Если режим ШГ не использовался, то на табло индикации появится сообщение 0 8 2 F -, что соответствует завершению программы.
6. Проконтролируйте результат вычислений, записанный в память по адресу 0900, выполнив команду «П»:
«П» 0900 «ВП»
на табло индикации будет выведено содержимое указанной ячейки памяти 0900, в которой на примере был сохранен результат вычислений.
Если программа выполнена неправильно или не выходит из цикла, воспользуйтесь промежуточными адресами прерывания, т.е. выполните команду «СТ»:
«СТ» А1 А2 «ВП»
где А2 - адрес прерывания выполнения программы
Например, при команде
«СТ» 0800 080В «ВП»
произойдет останов по адресу 080В, что будет отображено на табло индикации:
0 8 0 В - ,
и используя команду «РР» - чтение и изменение содержимого регистров МП – можно просмотреть требуемые регистры, например:
«РГ» «РГ» «РГ» |
H L D |
H – 09 L – 20 D – 03 |
|
|
|
Пример2. Дан массив из 10 однобайтных чисел. Расположить исходный массив в порядке убывания. Адрес начала массива - 0900.
Существует несколько способов решения данной задачи. В данном случае рассмотрим сортировку элементов в массиве методом «пузырька». Данный метод основан на последовательном сравнении элементов массива с самым первым, и обмена с ним в случае не соответствии условию. При этом размерность сортируемого массива постепенно уменьшается с фиксированием члена массива, удовлетворяющего условию.
Для решения данной задачи необходимо постоянно контролировать адреса двух сравниваемых чисел, а также знать количество оставшихся сравнений, которое в начальный момент составляет на единицу меньше, чем количество членов в массиве.
Для реализации сказанного ранее зададимся следующими данными: адрес I-го сравниваемого числа хранится в ВС паре регистров; адрес II-го сравниваемого числа хранится в HL паре регистров; D – I-ый счетчик; E – II-ой счетчик.
Решение данной задачи рассмотрим приведя подробный алгоритм, представленный на рисунке 2.4.
Рисунок 2.4. Алгоритм решения задачи по сортировке массива
