Внешний вид учебного микропроцессорного комплекта представлен на рисунке 2.2.
МикроЭВМ питается от вторичного источника питания напряжением +5, +12, -5 В.
Управление работой УМК осуществляется с помощью директив “Монитора” (управляющей программы), вызываемых с клавиатуры.
Клавиатура управления УМК из 24 кнопок (рисунок 2.2), из них 8 – директивные, 16 – информационные.
Рисунок 2.2. Внешний вид УМК 580
Директивные клавиши служат для вызова директив и имеют следующие обозначения:
«П» – чтение и изменение содержимого памяти:
формат директивы – «П» Х1Х2Х3Х4 «D1» «D2» … «Dn» «ВП», где: Х1Х2Х3Х4 – адрес ячейки памяти. В качестве адреса фиксируются последние 4 введенные цифры;
D1…Dn – данные, подлежащие записи в память. В качестве каждого байта (между разделителем « ») фиксируются две последние введенные цифры.
Для перехода к следующей ячейке памяти без изменения содержимого индицируемой, не набирая новых данных, нажмите кнопку « ».
1. «РГ» – чтение и изменение содержимого регистров микропроцессора:
формат директивы – «РГ» Ri «Di» «Ri+1» Di+1 «ВП», где идентификатором регистра Ri являются символы, определяющие программно доступные регистры МП: A, B, C, D, E, H, L, F (регистр условий), SL (младший байт указателя стека), SH (старший байт указателя стека), PL (младший байт счетчика команд);
Di – данные, вводимые в регистр. В качестве нового содержимого фиксируются две последние введенные цифры.
При необходимости перехода к следующему регистру без изменения содержимого индицируемого нажмите кнопку « », не набирая новых данных.
2. «ЗК» – заполнение массива памяти константой:
формат директивы – «ЗК» Адрес 1 « » Адрес 2 «П» D «ВП», где Адрес 1 и Адрес 2
- начальный и конечный адреса массива памяти; D – байт данных для записи в массив.
Внимание!Последние 54 ячейки ОЗУ отведены под стек монитора. Попытка их заполнения приводит к разрушению стека.
3. «ПМ» – перемещение массива памяти в адресном пространстве:
формат директивы – «ПМ» Адрес 1 « » Адрес 2 « » Адрес 3 «ВП», где Адрес 1 и
Адрес 2 - начальный и конечный адреса перемещаемого массива памяти; Адрес 3 - начальный адрес массива размещения;
результат выполнения директивы – массив памяти, ограниченный адресами A1 и А2 включительно, переписывается в область памяти начиная с адреса А3. Массивы перемещения и назначения не должны перекрываться, в противном случае произойдет утеря чисти информации.
4. «КС» – определение контрольной суммы массива памяти:
формат директивы – «КС» А1 « » А2 «ВП», где А1 и А2 – начальный и конечный
адреса массива памяти;
результат выполнения директивы – контрольная сумма массива – представляет собой сумму содержимого всех ячеек памяти массива по модулю 256 без учета переполнения.
5. «СТ» – передача управления программе пользователя:
формат директивы – «СТ» А1 « » А2 « » А3 «ВП», где А1 – начальный адрес
программы; А2 и А3 – адреса прерывания выполнения программы;
результат выполнения директивы – производится передача управления программе, начало которой размещено по адресу А1. Адрес А1 должен указывать первый байт команды. При достижении адресов 2 и 3 выполнение программы прерывается, состояние регистров МП сохраняется в ОЗУ, а управление передается программе “Монитор”. При этом возможно использование любой директивы “Монитора”.
При передаче управления по адресу А1 управление передается по адресу, находящемуся в счетчике команд.
7. Прерывание выполнения программы осуществляется при нажатии на управляющую кнопку «ПР». При этом производится передача управления программе “Монитор”. Состояние регистра МП сохраняется в регистре пользователя или в стеке монитора. На дисплее индицируется содержимое счетчика команд, которое на единицу больше адреса последнего байта последней выполненной команды.
8. Пошаговое выполнение программы. Возможно выполнение двух разновидностей пошагового выполнения программы – поцикловый и покомандный режим:
вызов пошагового режима осуществляется переключателем «РБ/ШГ»;
выбор режима пошагового выполнения осуществляется переключателем «КМ/ЦК». При этом индикаторами отображаются начальный адрес программы, данные по этому адресу и содержимое регистра состояния;
выполнение одного рабочего цикла (режим ЦК) или одной команды (КМ) производится при каждом кратковременном нажатии на кнопку «ШГ».
Информационные клавиши служат для ввода чисел в шестнадцатеричном коде. Клавиши с «4/PH» по «F» служат для вызова идентификаторов регистров микропроцессора.
Внимание!При неправильной работе с клавиатурой в крайней правой позиции дисплея индицируется знак «?».
Свечение хотя бы одного из светодиодов «+5 В», «-12 В», «+12 В» Свидетельствует о перегрузке соответствующей шины питания и блокировке стабилизатора напряжения. Необходимо отключить УМК кнопкой «~» и примерно через 30 секунд повторить включение.
После включения УМК кнопкой «~» нажмите кнопку “СБ” (сброс). При этом в крайней левой позиции дисплея должен появиться знак «–». УМК готов к работе.
Знак «–» в крайней правой позиции дисплея появляется после завершения выполнения программы пользователя. При этом в четырех левых разрядах дисплея индицируется адрес останова.
Область адресов для записи исследуемых программ данных
ОЗУ
0С00
FFFF
Неиспользуемые адреса
2. Подготовка к выполнению работы
2.1. Согласно варианту из таблицы 2.7. нарисовать подробный алгоритм и написать программу на языке АССЕМБЛЕР по нахождению значения функции. Операнды функции – по 3 байта. Адрес младшего байта: числа А – 0900, числа В – 0910, числа С – 0920.
Таблица 2.7
№ вар
Переменная
№ вар
Переменная
№ вар
Переменная
2.2. Произвести оценку длины программы в байтах. Определить время в тактах, необходимое на выполнение программы.
2.3. Пользуясь табл. 2.2 – 2.5, перевести программу в машинные коды.
2.4. Загрузить программу в микропроцессорный комплект и выполнить ее. Проверить правильность результатов, с подсчитанными в первой лабораторной работе.
2.5. Согласно варианту из таблицы 2.8. нарисовать алгоритм и написать программу на языке АССЕМБЛЕР по организации условий при работе с массивами чисел. Адрес: первого члена 1 массива – 0900, 2 массива – 0910, 3 массива – 09А0, константы А- 0А00.
Таблица 2.8
№
Задание
Дан массив из 10 однобайтных чисел. Создать новый массив, исключая из первого повторяющиеся члены.
Даны два массива из 10 однобайтных чисел. Провести между ними операцию «ИЛИ» и полученный новый массив расположить в порядке убывания.
Дано число А. Проверить его на четность, и выполнить следующие действия: А – четное: А х 2; А – нечетное: А+В (А, В = 3х8).
Дан массив из 10 однобайтных чисел. Создать новый массив, выбрав из первого массива числа от 10 до 30.
Дан массив из 10 однобайтных чисел. Расположить его в порядке возрастания.
Даны два 3-х байтных числа А и В. К большему из них прибавить число С (3х8).
Дан массив из 10 однобайтных чисел. Создать новый массив, исключив из первого числа от 10 до 30.
Дан массив из 10 однобайтных чисел. Создать новый массив, выбирая из первого каждый третий член, складывая их с константой А.
Даны два 3-х байтных числа А и В. К меньшему из них прибавить число С (3х8).
Дан массив из 10 однобайтных чисел. Расположить его в порядке убывания.
Дан массив из 10 однобайтных чисел. Создать новый массив, выбирая из первого повторяющиеся члены.
Дан массив из 10 однобайтных чисел. Если в нем присутствует член, равный константе А, создать новый массив исключив данный член.
Дано число А. Проверить его на четность, и выполнить следующие действия: А – четное: А + В; А – нечетное: А-В. (А, В = 3х8)
Провести операцию А-В путем сложения в дополнительном коде.
(А, В = 3х8).
Дан массив из 10 однобайтных чисел. Создать новый массив проведя над всеми членами первого операцию «И» с константой А и расположить его в порядке возрастания.
2.6. Пользуясь табл. 2.2 – 2.5, перевести программу в машинные коды.
2.7. Загрузить программу в микропроцессорный комплект и выполнить ее. Проверить правильность полученных результатов.
3. Порядок выполнения работы
Работа выполняется на учебной микроЭВМ.
3.1. Порядок выполнения работы рассмотрим на примере программ по вычислению функции F (пример 1) и сортировки массива (пример 2).
Пример1.Найти значение функции ,
где А,В,С – 3-х байтные числа и расположены в памяти. Результат сохранить на место А. А=54А316, В=7594FF, C=2АВ048
Расширенный алгоритм программы представлен на рисунке 2.3. Программа, построенная в соответствии с алгоритмом, приведена в таблице 2.9.
Рис 2.3. Алгоритм программы
Таблица 2.9
Программа нахождения значения функции
Адр
Мнемокод
Код
Примечание
Загрузка операндов
Загрузка трехбайтного числа А начиная с младшего байта.
A3
FF
Загрузка трехбайтного числа В начиная с младшего байта.
Загрузка трехбайтного числа С начиная с младшего байта.
B0
2A
Загрузка программы
LXI H, 0920
Запись в регистры HL число 0920 (адрес ячейки памяти хранения младшего байта первого операнда, участвующего в операции)
LXI B, 0910
Запись в регистры ВС число 0910 (адрес ячейки памяти хранения младшего байта второго операнда, участвующего в операции)
MVI D, 03
Загрузка числа 3 в регистр D (формирование счетчика, для отсчета байтов в операции)
LDAX, B
0A
Косвенная загрузка аккумулятора из BC-пары
ANA M
A6
Операция «и» между содержимым аккумулятора и ячейки памяти, адрес которой содержится в HL-паре
080A
CMA
2F
Дополнение аккумулятора (инверсия)
080B
STAX, B
080C
DCR, D
Вычитание содержимого счетчика.
080D
JZ 0815
CA
Если счетчик равен нулю, т.е. операция была проведена со всеми байтами операндов, перейти на следующую операцию.
080E
080F
INX, H
Перейти к следующей ячейке памяти, адрес которой содержится в HL-паре(содержится следующий байт операнда)
INX, B
Перейти к следующей ячейке памяти, адрес которой содержится в ВС-паре (содержится следующий байт операнда).
JMP, 0808
C3
Безусловно вернуться на повторение операции
LXI H, 0900
Запись в регистры HL число 0900 (адрес ячейки памяти хранения младшего байта первого операнда, участвующего в операции)
LXI B, 0910
Запись в регистры ВС число 0910 (адрес ячейки памяти хранения младшего байта второго операнда, участвующего в операции, результат предыдущей операции)
081A
081B
MVI D, 03
Загрузка числа 3 в регистр D (формирование счетчика, для отсчета байтов в операции)
081C
081D
LDAX, B
0A
Косвенная загрузка аккумулятора из BC-пары
081E
ADD M
Операция сложения между содержимым аккумулятора и ячейки памяти, адрес которой содержится в HL-паре
MOV M,A
Косвенное сохранение аккумулятора в HL-пару
DCR, D
Вычитание содержимого счетчика.
JZ, 082F
CA
Если счетчик равен нулю, т.е. операция была проведена со всеми байтами операндов, перейти на следующую операцию.
2F
082A
INX, H
Перейти к следующей ячейке памяти, адрес которой содержится в HL-паре(содержится следующий байт операнда)
082B
INX, B
Перейти к следующей ячейке памяти, адрес которой содержится в ВС-паре (содержится следующий байт операнда).
082C
JMP, 081D
C3
Безусловно вернуться на повторение операции
082D
1D
082E
082F
HLT
Останов
3.2. Выполнение работы на УМК.
1. Включить УМК, нажав клавишу «~».
Если на табло индикации присутствует информация, нажмите клавишу «СБ» (сброс), в результате чего на табло будет гореть знак «–» в крайнем левом разряде.
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. Алгоритм решения задачи по сортировке массива
4. Содержание отчета
4.1. Подробный алгоритм и программа на языке АССЕМБЛЕР по нахождению значения функции.
4.2. Результат выполнения программы по нахождению значения функции.
4.3. Подробный алгоритм и программа на языке АССЕМБЛЕР по организации условий при работе с массивами чисел.
4.4. Результат выполнения программы по организации условий при работе с массивами чисел.
5. Контрольные вопросы
5.1. Разрядность шины данных и шины адреса МП К580.
5.2. Возможности АЛУ МП К580.
5.3. Назначение и состав блока регистров общего назначения МП К580.
5.4. Особенности работы HL-пары регистров МП К580.
5.5. Регистр признаков. Размерность и состав.
5.6. Аккумулятор. Назначение и особенности его работы.
5.7. Назначение буферных регистров МП К580.
5.8. Устройство управления МП К580. Сигналы связи с внешними устройствами.
5.9. Способы адресации МП К580.
5.10. Формат команд МП К580.
5.11. Система команд МП К580.
5.12. Понятия код, мнемокод, операция и микрооперация.
6. Литература
6.1. Каган Б.М., Сташин В.В. Основы проектирования микропроцессорных устройств автоматики. – М.: Энергоиздат, 1987. – 303с.
6.2. Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учебное пособие для высших учебных заведений. М.: Радио и связь, 1988. – 368с.
6.3. Балашов Е.П., Григорьев В.Л., Петров Г.А. Микро- и мини-ЭВМ/Для студентов ВУЗов. – Л.: Энергоатомиздат, 1984. – 376с.
6.4. Микропроцессоры: Том1./ под ред. Преснухина Л.Н. – Мн.: Вышэйшая школа, 1987. – 416с.
6.5. Гуртовцев А.Л., Гудыменко С.В. Программы для микропроцессоров – Мн.: Вышэйшая школа, 1989. – 354с.