Лабораторные работы по программированию

Лабораторная работа №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