Лабораторные работы по программированию
Лабораторная работа №1.
Тема: Обучение работе на УМК.
Цель: Научиться работать на УМК.
Приборы: Учебный микропроцессорный комплекс (УМК).
Ход работы.
Панель прибора:
В левой части расположены функциональные клавиши. За каждой клавишей закреплена определённая функция системной программы МОНИТОР. На них выгравированы соответствующие идентификаторы функции:
П – просмотр и модификация содержимого ячейки памяти;
РГ - просмотр и модификация содержимого ячейки регистров;
СТ – старт программы;
КС – подсчёт контроля суммы;
ЗК – заполнение массива памяти константой;
ПМ – перемещение массива памяти;
разделитель;
ВП – выполнить.
Первая часть клавиш предназначена для ввода параметров в шестнадцатеричной форме. В дальнейшем предусмотрено, что все вводимые и выводимые данные имеют шестнадцатеричный формат. На них выгравированы символы: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, F. Кроме этого на клавишах 4, 5, 6, 7, 8, 9, под цифрами выгравированы идентификаторы регистров микропроцессора.
РН – ст. байт счётчика команд;
РL – мл. байт счётчика команд;
SH – ст. байт указателя стёка;
SL – мл. байт указателя стёка;
Н – регистр Н;
L – регистр L;
Для идентификации остальных регистров микропроцессора используются клавиши:
А – регистр А;
В – регистр В;
С – регистр С;
D - регистр D;
E – регистр Е;
F – регистр признаков;
Кнопка включения (выключения) УМК СЕТЬ расположена в левой нижней части лицевой панели. На самой кнопке выгравирован символ «~». Эта кнопка служит для включения (нажатое состояние кнопки) и выключения (отжатое состояние кнопки) УМК.
Кнопка СБРОС расположена в правой средней части лицевой панели УМК. На кнопке выгравировано СБ. Эта кнопка служит для инициализации системной программы МОНИТОР, и в левой позиции шестисигментного дисплея появляется символ « – «. УМК готов к приёму команд.
Управление пошаговым режимом работы УМК производится с помощью кнопок, на которых выгравированы надписи: РБ / ШГ, КМ / ЦК и ШГ. С помощью этих кнопок может быть установлен один из двух режимов работы УМК по шагам. Первый режим – командный. Для установки этого режима нажать кнопку РБ / ШГ (она останется в нажатом состоянии).
Для выполнения команд необходимо нажать кнопку ШГ. Каждое нажатие кнопки ШГ вызовет выполнение текущей команды. При этом на светодиодах индикации состояния шин данных, адреса и управляющих сигналов, расположенных в центре лицевой панели УМК, будут высвечиваться в двоичном коде, (каждый светодиод отражает соответствующий разряд), соответственно адрес и код выполненной команды, а также управляющие сигналы микропроцессора.
Лабораторная работа №2.
Тема: Изучение работы УМК в пошаговом режиме.
Цель: Научиться работать на УМК в пошаговом режиме.
Ход работы:
Задание:
Для последовательности команд запишите машинные коды.
-
Команда
ША
ШД
№ шага
LXI B, 940H
800
801
802
01
40
09
0
1
2
LXI D, 960H
803
804
805
11
60
09
3
4
5
MYI L, 10H
806
807
2E
10
6
7
LDAX B
808
940
0A
3D
8
9
STAX D
809
960
12
3D
10
11
INX B
80A
03
12
INX D
80B
13
13
DCR L
80C
2D
14
JMP 800H
80D
80E
80F
C3
00
08
15
16
17
Задание:
Записать следующие команды коды для последовательности команд:
Команда |
ША |
ШД |
№ шага |
LXI H, 900H |
800 |
21 |
0 |
LXI B, 920H |
803 |
01 |
1 |
LXI D, 940H |
806 |
11 |
2 |
LDAX B |
809 |
0A |
3 |
sub> M |
80A |
96 |
4 |
STA 950H |
80B |
32 |
5 |
LDAX D |
80E |
1A |
6 |
ANA M |
80F |
A6 |
7 |
RAL |
810 |
17 |
8 |
STA 951H |
811 |
32 |
9 |
LDA 950H |
814 |
3A |
10 |
MOV L,A |
817 |
6F |
11 |
LDA 951H |
818 |
3A |
12 |
MOY H,A |
81B |
67 |
13 |
SHCH 952H |
81C |
22 |
14 |
JMP 800H |
81F |
C3 |
15 |
Лабораторная работа №3.
Тема: Регистры микропроцессора. Команды загрузки регистров.
Команды пересылки.
Цель: Изучить регистры микропроцессора, команды загрузки и команды пересылки.
Ход работы
MOV рег1, рег2 – команда пересылки, эта команда осуществляет пересылку с рег2 в регистр рег1.
MVI рег, знач – команда загрузки регистра, эта команда загружает значение знач в регистр рег.
800 MVI A, 00H 2E00
802 MVI B, 01H 0601
804 MVI C, 02H 0E02
806 MVI D, 03H 1603
808 MVI E, 04H 1E04
80A MVI H, 05H 2605
80C MVI C, 06H 2E06
800 MOV A, FFH 3EFF
802 MOV B, A 47
804 MOV C, B 48
806 MOV D, C 51
808 MOV E, D 5A
80A MOV H, E 63
80C MOV L, H 6C
B)
800 MVI B, BBH 06BB
801 MVI C, CCH 0ECC
802 MVI D, DDH 16DD
803 MVI E, EEH 1EEE
804 MVI H, 12H 2612
805 MVI L, 34H 2E34
806 MVI A, AAH 3EAA
800 LXI B, BBCCH 01CCBB
803 LXI D, DDEEH 11EEDD
806 LXI H, 1234H 213412
800 LXI B, 3132H 0132H
803 LXI D, 3334H 113433
806 LXI H, 3636H 213635
Лабораторная работа №4.
Тема: Методы адресации памяти. Команды работы с памятью.
Цель: Изучить методы адресации памяти и команды работы с ними.
Ход работы
800 MVI A, 00
801 STA 900
802 MVI A, 01
803 STA 905
804 MVI A, 02
805 STA 90C
800 MVI A, 00
801 STA 900
802 LDA 900
803 MOV B, S
800 LXI H, 3231
802 SHLD 920
804 LHLD 920
806 MOV H, B
808 MOV L, C
800 LXI H 32,31
802 SHLD 920
800 LXI H, 0100
803 SHLD 940
805 MVI A, 03
807 STA 943
800 MVI A, 00
801 STA 900
802 LDA 900
803 MOV B, A
Лабораторная работа №5.
Тема: Арифметические команды.
Ход работы.
Записать в память, начиная с адреса 800Н, коды программы реализации:
A = A+B+M+1
800 MVI A, 00 3E00
802 MVI B, 02 06 02 A = 56
804 ADD B 80 F = 0,6
805 LXI H, 900 210009
808 MVI M, 03 3603
80A ADD M 86
80B ADI 1 C601
C = 0 – не возникает переполнения
Р = 1 – количество единиц в байте, чётное
Ас = 0 – не возникает переноса
Z = 0 – результат выполнения операции не равен нулю
S = 0 – результат операции положительный
НL = DE+BC
Записать в память, начиная с адреса 800Н, коды программы сложения шестнадцатиразрядных чисел, используя команды восьмиразрядного сложения:
НL = DE+BC
800 MVI C, 01
MOV A, C
MVI E,02
ADD E
MOV L, A
MVI B, 02
MOV A, B
80A MVI D, 04
80C ADD D
80D MOV H,A
Написать и выполнить программу реализующую: C = D+E .
MVI D, FF
MVI E, 01
MOV A, D
ADD E
MOV C,A
Написать и выполнить программу сложения двух ячеек памяти: M1 = M2 + M3 .
LXI M, 901H
MVI M2, 01
MOV A, M2
LXI H, 902H
MVI M3, 02
ADD M3
LXI H, 900H
MVI M1,A
Написать и выполнить программу сложения: HL = BC+E+4000H
MVI C, 01
MOV A, C
MVI E,02
ADD E
ADI 00
MOV L, A
MVI B, 03
MOV A, 0
ADI 40
MOV H, A
Команды вычитания восьмиразрядных чисел.
Записать в память, начиная с адреса 800Н, коды программы реализующей:
A = A – B – M – I
MVI A, 01
MVI B, 01
sub> B
LXI 900H
MVI M, 00
sub> M
SBI 01
Записать в память, начиная с адреса 800Н, коды программы 16- ти разрядных чисел: HL = DE – BC.
MVI E, FC
MOV A, E
MVI C, F0
sub> C
MOV L, A
MVI B, 0F
MVI D, FF
MOV A, D
sub> B
MOV A, H
Написать и выполнить программу вычитания двух ячеек памяти: M1 = M2 - M3 .
LXI H, 901H
MVI M2, 01
MOV A, M2
LXI H, 902H
MVI M3, 02
sub> M3
LXI H, 900
MVI M1, A
Написать и выполнить программу вычитания: HL = BC – I – 0FFFH
MVI C, 01
MOV A, C
MVI I, 02
sub> I
SVI FF
MOV L, A
MVI B, 03
MOV A, B
SVI 0F
MOV H, A
Команды констремента.
Записать в память, начиная с адреса 800Н код команды:
MVI E, 00
INR E
Записать в память, начиная с адреса 800Н коды команд:
LXI H, 900H
MVI M, 00
INR M
Записать в память по адресу 800Н код команды:
LXI D, 00 01
INX D
Выполнить команду для следующих исходных значений пары регистров DE.
MVI E, 00
MVI D, 01
INX D
Написать и выполнить программу заполнения массива памяти (900Н = 904Н), соответствию данными (00 – 04), используя команды инскремента пары регистров и регистра.
LXI H, 900H
MVI M, 00
INX, H
MVI M, 01
INX, H
MVI , 03
INX H
MVI , 04
Команды дискрента.
Записать в память по адресу 800Н код команды:
MVI C, 00
DCR, C
Записать в память, начиная с адреса 800Н коды команд:
LXI H, 900H
MVI M, 00
DCR, M
Записать в память по адресу 800Н код команды:
MVI H, 00
MVI L, 01
DCR, H
Лабораторная работа №8.
Тема: Команды сравнения.
Ход работы
Сравним содержимое В и С:
MVI C, 01
MOV A, C
MVI B, 01
CMP B
MVI C, 01
MOV A, C
MVI B, 09
CMP B
MVI C, FF
MOV A, C
MVI B, 00
CMP B