Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум.docx
Скачиваний:
0
Добавлен:
26.06.2025
Размер:
2.36 Mб
Скачать

Задание для выполнения лабораторной работы

1. Исследование команд арифметических операций

1.1. Выполнить операцию сложения двух однобайтных чисел с применением различных режимов адресации: ADD RS, ADD M, ADI B2.

Таблица 17

Программа сложения двух однобайтных чисел (регистровая адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 04

MVI A,

04

(A) ← 04

0802

06 08

MVI B,

08

(B) ← 08

0804

80

ADD B

(A) ← (A) + (B)

0805

FF

RST 7

Прервать выполнение

программы

Просмотреть и зафиксировать в отчете содержимое регистров А, В, F.

Таблица 18

Программа сложения двух однобайтных чисел (регистровая косвенная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

21 40 08

LXI H,

0840

(HL) ← 0840

0803

3E 04

MVI A,

04

(A) ← 04

0805

36 08

MVI M,

08

M ← 08

0807

86

ADD M

(A) ← (A) + (M)

0808

FF

RST 7

Прервать выполнение

программы

Просмотреть и зафиксировать в отчете содержимое регистров А, М (виртуальный регистр), F, регистровой пары HL.

Таблица 19

Программа сложения двух однобайтных чисел (непосредственная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 04

MVI A,

04

(A) ← 04

0802

С6 1F

ADI

1F

(A) ← (A) + 1F

0804

FF

RST 7

Прервать выполнение

Программы

Просмотреть и зафиксировать в отчете содержимое регистров А, F.

1.2. Выполнить операцию вычитания двух однобайтных чисел с применением различных режимов адресации: SUB RS, SUB M, SUI B2.

Таблица 20

Программа вычитания двух однобайтных чисел (регистровая адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 08

MVI A,

08

(A) ← 08

0802

0E 06

MVI C,

06

(C) ← 06

0804

91

SUB C

(A) ← (A) – (C)

0805

FF

RST 7

Прервать выполнение

Программы

Просмотреть и зафиксировать в отчете содержимое регистров А, С, F.

Таблица 21

Программа вычитания двух однобайтных чисел (регистровая косвенная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

21 40 08

LXI H,

0840

(HL) ← 0840

0803

3E 08

MVI A,

08

(A) ← 08

0805

36 06

MVI M,

06

(M) ← 06

0807

96

SUB M

(A) ← (A) – (M)

0808

FF

RST 7

Прервать выполнение

Программы

Просмотреть и зафиксировать в отчете содержимое регистров А, М, F, регистровой пары HL.

Таблица 22

Программа вычитания двух однобайтных чисел (непосредственная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 1F

MVI A,

1F

(A) ← 1F

0802

D6 1F

SUI

1F

(A) ← (A) – 1F

0804

FF

RST 7

Прервать выполнение

Программы

Просмотреть и зафиксировать в отчете содержимое регистров А, F.

1.3. Выполнить операцию сложения двух двухбайтных чисел с применением одной из команд: ADС RS, ADС M, AСI B2.

Таблица 23

Программа сложения двух двухбайтных чисел (регистровая адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 8A

MVI A,

8A

(A) ← 8A

0802

06 B4

MVI B,

B4

(B) ← B4

0804

80

ADD B

(A) ← (A) + (B)

0805

32 50 08

STA

0805

M(0850) ← (A)

0808

3E 08

MVI A,

08

(A) ← 08

080A

06 10

MVI B,

10

(B) ← 10

080C

88

ADC B

(A) ← (A) + (B) + C

080D

32 51 08

STA

0851

M(0851) ← (A)

0810

FF

RST 7

Прервать выполнение

Программы

Данная программа выполняет операцию 088А16+10В416. Сначала складываются младшие байты чисел, затем старшие с учетом переноса в старший байт. Младший байт суммы содержится в ячейке памяти 0850, старший байт суммы в ячейке памяти 0851. Проверить результат сложения. Проверить и зафиксировать в отчете содержимое регистра F после сложения младших и старших байтов, а также результат сложения.

1.4. Выполнить операцию вычитания двух двухбайтных чисел с применением одной из команд: SВB RS, SВB M, SВI B2.

Таблица 24

Программа вычитания двух двухбайтных чисел (непосредственная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 27

MVI A,

27

(A) ← 27

0802

D6 83

SUI

83

(A) ← (A) – 83

0804

32 50 08

STA

0850

M(0850) ← (A)

0807

3E 21

MVI A,

21

(A) ← 21

0809

DE 10

SBI

10

(A) ← (A) – 10 – C

080B

32 51 08

STA

0851

M(0851) ← (A)

080E

FF

RST 7

Прервать выполнение

Программы

Данная программа выполняет операцию 212716 – 108316. Сначала из младшего байта уменьшаемого вычитается младший байт вычитаемого, результат помещается в ячейку памяти 0850. Далее с учетом заема в младший байт из старшего байта уменьшаемого вычитается старший байт вычитаемого, результат помещается в ячейку памяти 0851. Проверить результат вычитания. Проверить и зафиксировать в отчете содержимое регистра F после вычитания младших и старших байтов, а также результат вычитания чисел – ячейки памяти 0850 (младший байт разности) и 0851 (старший байт разности).

1.5. Выполнить задания пунктов 1.3 и 1.4, используя другие режимы адресации.

1.6. Разработать и исследовать на УМК программу сложения 5 произвольных однобайтных чисел, используя все режимы адресации. Проверить и зафиксировать в отчете содержимое всех регистров и ячеек памяти, используемых в разработанной программе.

2. Исследование команд логических операций

2.1. Выполнить операцию логического умножения чисел 101000112 (A316) и 100010112 (8B16) с помощью любой команды: ANA RS, ANA M, ANA B2.

Таблица 25

Программа логического умножения двух однобайтных чисел (регистровая адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E A3

MVI A,

A3

(A) ← A3

0802

06 8B

MVI B,

8B

(B) ← 8B

0804

A0

ANA B

0805

FF

RST 7

Прервать выполнение

Программы

Проверить правильность результата и зафиксировать в отчете содержимое регистров А, B, F.

2.2. С помощью байта-маски сбросить 1 и 4 биты байта 001100112 (3316) с применением одной из команд: ANA RS, ANA M, ANA B2.

Таблица 26

Программа логического умножения двух однобайтных чисел (регистровая косвенная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

21 40 08

LXI H,

0840

(HL) ← 0840

0803

3E 33

MVI A,

33

(A) ← 33

0805

36 ED

MVI M,

ED

(M) ← ED

0807

A6

ANA M

0808

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистров А, M, F.

2.3. Выполнить операцию логического сложения чисел 101000112 (А316) и 100010112 (8В16) с применением одной из команд: ORA RS, ORA M, ORI B2.

Таблица 27

Программа логического сложения двух однобайтных чисел (регистровая косвенная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

21 40 08

LXI H,

0840

(HL) ← 0840

0803

3E A3

MVI A,

A3

(A) ← A3

0805

36 8B

MVI M,

8B

(M) ← 8B

0807

B6

ORA M

0808

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистров А, M, F.

2.4. С помощью байта-маски установить 3 и 7 биты байта 001100112 (3316) с применением одной из команд: ORA RS, ORA M, ORI B2.

Таблица 28

Программа логического сложения двух однобайтных чисел (регистровая адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 33

MVI A,

33

(A) ← 33

0802

0E 88

MVI C,

88

(C) ← 88

0804

B1

ORA C

Продолжение таблицы 29

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0805

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистров А, C, F.

2.5. С помощью команды СМА инвертировать число 100010102 (8А16).

Таблица 30

Программа побитного инвертирования содержимого аккумулятора

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 8A

MVI A,

8A

(A) ← 8A

0802

2F

CMA

0803

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистров А, F.

2.6. Инвертировать флаг переноса регистра F.

Таблица 31

Программа инвертирования флага переноса регистра F

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3F

CMC

0802

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистра F до и после выполнения программы.

2.7. Инвертировать 1, 3 и 7 биты байта 101100012 (В116) с помощью байта-маски, используя одну из команд: XRA RS, XRA M, XRI B2.

Таблица 32

Программа выполнения команды исключающего ИЛИ (регистровая адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E B1

MVI A,

B1

(A) ← B1

Продолжение таблицы 32

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0802

0E 8A

MVI C,

8A

(C) ← 8A

0804

A9

XRA C

0805

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать содержимое регистров А, C, F.

2.8. Поразрядно сравнить два числа 101100012 и В116, используя одну из команд: XRA RS, XRA M, XRI B2.

Таблица 33

Программа поразрядного сравнения двух однобайтовых чисел (непосредственная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E B1

MVI A,

B1

(A) ← B1

0802

EE B1

XRI

0804

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистров А, F.

2.9. Выполнить задания пунктов 2.1 – 2.4, 2.7, 2.8 используя другие режимы адресации.

3. Исследование команд вспомогательных логических и арифметических операций

3.1. Сравнить числа 3D16 и 2216, 3D16 и 8F16, 3D16 и 3D16, используя одну из команды: CMP RS, CMP M, CPI B2.

Таблица 34

Программа сравнения двух однобайтных чисел (регистровая адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 3D

MVI A,

3D

(A) ← 3D

0802

06 22

MVI B,

22

(B) ← 22

0804

B8

CMP B

0850

(F) ← (A) – (B)

0805

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистров А, B, F.

Таблица 35

Программа сравнения двух однобайтных чисел (регистровая косвенная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

21 40 08

LXI H,

0840

(HL) ← 0840

0803

3E 3D

MVI A,

3D

(A) ← 3D

0805

36 8F

MVI M,

8F

(M) ← 8F

0807

BE

CMP M

(F) ← (A) – (M)

0808

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать содержимое регистров А, M, F.

Таблица 36

Программа сравнения двух однобайтных чисел (непосредственная адресация)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 3D

MVI A,

3D

(A) ← 3D

0802

FE 3D

CPI

3D

(F) ← (A) – 3D

0804

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистров А, F.

3.2. Задан массив чисел: 0А00 ← 0116; 0А01 ← 0516; 0А02 ← 0216; 0А03 ← 0116. Пользуясь командами INX R и DCX R, определить сумму элементов массива. Перед выполнением программы необходимо ввести массив в память.

Таблица 37

Программа поиска суммы элементов массива (команда INX R)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

21 01 0A

LXI H,

0A01

(HL) ← 0A01

0803

3A 00 0A

LDA

0A00

(A) ← (0A00)

0806

86

ADD M

(A) ← (A) + (M)

0807

23

INX H

(HL) ← (HL) + 1

0808

86

ADD M

(A) ← (A) + (M)

0809

23

INX H

(HL) ← (HL) + 1

Продолжение таблицы 37

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

080A

86

ADD M

(A) ← (A) + (M)

080B

FF

RST 7

Прервать выполнение

Программы

Таблица 38

Программа поиска суммы элементов массива (команда DCX R)

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

21 02 0A

LXI H,

0A02

(HL) ← 0A02

0803

3A 03 0A

LDA

0A03

(A) ← (0A03)

0806

86

ADD M

(A) ← (A) + (M)

0807

2B

DCX H

(HL) ← (HL) – 1

0808

86

ADD M

(A) ← (A) + (M)

0809

2B

DCX H

(HL) ← (HL) – 1

080A

86

ADD M

(A) ← (A) + (M)

080B

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистров А, F.

3.3. Задан массив чисел: 0А00 ← 0116; 0А01 ← 0516; 0А02 ← 0216; 0А03 ← 0116. Пользуясь командами INR M и DCR M уменьшить 1 и 2 элементы массива на единицу, 3 и 4 элементы массива увеличить на единицу. Перед выполнением программы необходимо ввести массив в память.

Таблица 39

Программа уменьшения и увеличения на 1 элементов массива

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

21 00 0A

LXI H,

0A00

(HL) ← 0A00

0803

35

DCR M

0A03

(M) ← (M) – 1

0804

23

INX H

(HL) ← (HL) + 1

0805

35

DCR M

(M) ← (M) – 1

0806

23

INX H

(HL) ← (HL) + 1

0807

34

INR M

(M) ← (M) + 1

0808

23

INX H

(HL) ← (HL) + 1

0809

34

INR M

(M) ← (M) + 1

080A

FF

RST 7

Прервать выполнение

Программы

Проверить правильность выполнения программы. Записать исходный и модифицированный массивы данных.

3.4. Определите сумму трех однобайтных чисел, находящихся по адресам 0921 (0316), 0A10 (0516), 0BC9 (0116), пользуясь командой сложения содержимого регистровых пар DAD R. Предварительно необходимо записать числа в память.

Таблица 40

Программа поиска суммы чисел массива

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 00

MVI A,

00

(A) ← 00

0802

21 21 09

LXI H,

0921

(HL) ← 0921

0805

86

ADD M

(A) ← (A) + (M)

0806

01 EF 00

LXI B,

00EF

(BC) ← 00EF

0809

09

DAD B

(HL) ← (HL) + (BC)

080A

86

ADD M

(A) ← (A) + (M)

080B

11 B9 01

LXI D,

01B9

(DE) ← 01B9

080E

19

DAD D

(HL) ← (HL) + (DE)

080F

86

ADD M

(A) ← (A) + (M)

0810

FF

RST 7

Прервать выполнение

Программы

Проверить правильность выполнения программы. Записать содержимое регистров A, F, M, регистровых пар HL, BC, DE.

3.5. Найти сумму двух десятичных однобайтных чисел 7710 и 1810.

Таблица 41

Программа суммы двух десятичных однобайтных чисел

Адрес

Машинный код

Мнемоника команды

Операнд

Комментарий

0800

3E 77

MVI A,

77

(A) ← 77

0802

C6 18

ADI

18

(A) ← (A) + 18

0804

27

DAA

(A)10 ← (A)16

0805

FF

RST 7

Прервать выполнение

Программы

Проверить и зафиксировать в отчете содержимое регистров А, F.