- •1.2. Составили программу обмена данными между регистрами a и c с применением регистра m(0820) (Таблица 2)
- •1.3. Записали последовательно элементы массива в регистры e, d, l, h. Исходный массив: 0a00 (0516), 0a01 (0216), 0a02 (0716), 0a03 (0116) (Таблица 3).
- •1.5. Составили программу обмена данными между двумя ячейками памяти 0830 (7816) и 0831 (e316) (Таблица 5).
- •1.6. Составить программу обмена данными между ячейкой памяти 0820 (7816) и регистром d. Для промежуточного хранения данных использовали регистр m(0840) (Таблица 6).
- •3. Составили программу с предложенной блок – схемой, проверить корректность её работы (Таблица 8)
- •4. Для исследования команд jmp addr, call addr, rz addr, nop и hlt (Таблицы 9).
- •4.2. Исследовали команды управления pchl и jz addr.
- •6. Разработали программу деления двух однобайтных чисел с раздельной записью целого и остатка от деления (таблица 12).
Министерство образования и науки РФ
ФГБОУ ВО “Магнитогорский государственный технический университет имени Г.И.Носова”
Институт Энергетики и Автоматизированных Систем
Кафедра электроники и микроэлектроники
Лабораторная работа по дисциплине “Основы микропроцессорной техники”
«Исследование выполнения команд пересылки данных, управление, ввода – вывода и работы со стеком»
Выполнил: студент гр. АНб-14-2 Михайлицын А.С.
Проверил: кандидат тех. наук Швидченко Н.В.
Магнитогорск 2016
Цели и задачи работы.
Цель работы: закрепление теоретических знаний по изучению различных команд пересылки данных, управление, ввода – вывода, работы со стеком языка программирования ассемблера МП КР580ВМ80А.
Задачи: изучить особенности программирования с использованием подпрограмм и организации стека МП КР580ВМ80А, правила выполнения команд пересылки, управление, ввода – вывода и работы со стеком, научиться составлять простые программы на языке ассемблера и машинных кодах.
Порядок выполнения работы.
1. Ознакомиться с методическим указанием.
2. Изучить форматы и правила выполнения команд пересылки данных, управление, ввода – вывода, работы со стеком языка программирования ассемблера МП КР580ВМ80А.
3. Подготовить УМК к работе.
4. Изучить и выполнить индивидуальное задание.
5. Разработать отчет по лабораторной работе.
6. Подготовить ответы на контрольные вопросы.
Ход работы.
1. Исследование команд обмена данными регистров и ячеек памяти
1.1. Составили программу последовательной записи числа 1F16 в регистры A, B, C, D, E, H, L, пользуясь командами MOV RD, RS и MVI RD, data8 (Таблица 1).
Таблица 1
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 1F |
MVI A |
1F |
Записали 1F в аккумулятор |
0802 |
47 |
MOV B, A |
|
Содержимое аккумулятора переслали в регистр B |
0803 |
48 |
MOV C, B |
|
Содержимое регистра B переслали в регистр C |
0804 |
51 |
MOV D, C |
|
Содержимое регистра C переслали в регистр D |
0805 |
5A |
MOV E, D |
|
Содержимое регистра D переслали в регистр E |
0806 |
63 |
MOV H, E |
|
Содержимое регистра E переслали в регистр H |
0807 |
6C |
MOV L, H |
|
Содержимое регистра H переслали в регистр L |
0808 |
FF |
RST 7 |
|
Прервали выполнение команды |
Просмотрели и зафиксировали в отчете содержимое регистров до выполнения A=AA, B=BB, C=CC, D=DD, E=EE, H=12, L=34.
Просмотрели и зафиксировали в отчете содержимое регистров после выполнения A=1F, B=1F, C=1F, D=1F, E=1F, H=1F, L=1F.
1.2. Составили программу обмена данными между регистрами a и c с применением регистра m(0820) (Таблица 2)
Таблица 2
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 20 08 |
LXI H |
0820 |
Записали в регистровую пару (HL) число 0820 |
0803 |
3E 05 |
MVI A |
05 |
Загрузили в аккумулятор число 05 |
0805 |
0E 21 |
MVI C |
21 |
Загрузили в регистр C число 05 |
0807 |
77 |
MOV M, A |
|
Содержимое аккумулятора переслали в ячейку памяти М(0820) |
0808 |
79 |
MOV A, C |
|
Содержимое регистра C переслали в аккумулятор |
0809 |
4E |
MOV C, M |
|
Содержимое ячейки памяти М(0820) переслали в регистр C |
080A |
FF |
RST 7 |
|
Прервали выполнение команды |
Просмотрели и зафиксировали в отчете содержимое регистров до A=AA, C=CC, M(0820)=FF.
Просмотрели и зафиксировали в отчете содержимое регистров после A=21, С=05, M(0820)=05.
1.3. Записали последовательно элементы массива в регистры e, d, l, h. Исходный массив: 0a00 (0516), 0a01 (0216), 0a02 (0716), 0a03 (0116) (Таблица 3).
Таблица 3
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
2A 00 0A |
LHLD |
0A00 |
Содержимое ячейки памяти М(0А00) переслали в регистр L Содержимое ячейки памяти М(0А01) переслали в регистр H |
0803 |
EB |
XCHG |
|
Содержимое регистровой пары (HL) поменяли местами с содержимым регистровой пары (DE) |
Окончание таблицы 3
0805 |
2A 02 0A |
LHLD |
0A02 |
Содержимое ячейки памяти М(0А02) переслали в регистр L Содержимое ячейки памяти М(0А03) переслали в регистр H |
0808 |
FF |
RST 7 |
|
Прервали выполнение команды |
1.4. В регистрах записаны числа: D=0116, E=0716, H=0216, L=0516. Образовали массив {07,01,05,02} в памяти начиная с ячейки М(0835) (Таблица 4)
Таблица 4
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
22 37 08 |
SHLD |
0837 |
Содержимое регистра L переслали в ячейку памяти М(0837) Содержимое регистра H переслали в ячейку памяти М(0838) |
0803 |
EB |
XCHG |
|
Содержимое регистровой пары (HL) поменяли местами с содержимым регистровой пары (DE) |
0804 |
22 35 08 |
SHLD |
0835 |
Содержимое регистра L переслали в ячейку памяти М(0835) Содержимое регистра H переслали в ячейку памяти М(0836) |
0807 |
FF |
RST 7 |
|
Прервали выполнение команды |