
- •Задание для выполнения лабораторной работы №3
- •Выполнить операцию вычитания двух однобайтных чисел с применением различных режимов адресации:
- •Выполнить операцию сложения двух двухбайтных чисел с применением одной из команд: adс rs, adс m, aсi b2.
- •Выполнить операцию вычитания двух двухбайтных чисел с применением одной из команд: sвb rs, sвb m, sвi b2.
- •1.5 Выполнить задания пунктов 1.3 и 1.4, используя другие режимы адресации.
- •2.2 С помощью байта-маски сбросить 1 и 4 биты байта 001100112 (3316) с применением одной из команд: ana rs, ana m, ana b2.
- •2.3. Выполнить операцию логического сложения чисел 101000112 (а316) и 100010112 (8в16) с применением одной из команд: ora rs, ora m, ori b2.
- •2.4. С помощью байта-маски установить 3 и 7 биты байта 001100112 (3316) с применением одной из команд:
- •2.5. С помощью команды сма инвертировать число 100010102 (8а16).
- •2.6. Инвертировать флаг переноса регистра f.
- •2.8. Поразрядно сравнить два числа 101100012 и в116, используя одну из команд: xra rs, xra m, xri b2.
- •2.9. Выполнить задания пунктов 2.1 – 2.4, 2.7, 2.8 используя другие режимы адресации.
- •Найти сумму двух десятичных однобайтных чисел 7710 и 1810.
- •Состав отчета по лабораторной работе
2.8. Поразрядно сравнить два числа 101100012 и в116, используя одну из команд: xra rs, xra m, xri b2.
Таблица 33 Программа поразрядного сравнения двух однобайтовых чисел (непосредственная адресация)
-
Адрес
Машинный
код
Мнемоника
команды
Операнд
Комментарий
0800
3E B1
MVI A,
B1
(A) ← B1
0802
EE B1
XRI
(𝑨) ← (𝑨)⨁𝐵1
0804
FF
RST 7
Прервать выполнение
Программы
Проверить и зафиксировать в отчете содержимое регистров А, F.
A=00, F=46.
2.9. Выполнить задания пунктов 2.1 – 2.4, 2.7, 2.8 используя другие режимы адресации.
Переделанная 2.1.
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3A 00 09 |
LDA |
0900 |
(A) ← M(0900) |
0803 |
47 |
MOV B, A |
|
(B) ←(A) |
0804 |
3A 01 09 |
LDA |
0901 |
(A) ←M(0901) |
0807 |
A0 |
ANA B |
|
(𝑨) ← (𝑨) ∧ (𝑴) |
0808 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Переделанная 2.2
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3A 00 09 |
LDA |
0900 |
(A) ← M(0900) |
0803 |
47 |
MOV B, A |
|
(B) ←(A) |
0804 |
3A 01 09 |
LDA |
0901 |
(A) ←M(0901) |
0807 |
B0 |
ORA B |
|
(A) ← (A) ∨ (B) |
0808 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Переделанная 2.7.
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3A 00 09 |
LXI H |
0900 |
(HL) ← 0900 |
0803 |
47 |
MOV C, M |
|
(B) ←(A) |
0804 |
3A 01 09 |
INR L |
|
(L) ←L+1 |
0805 |
B0 |
MOV A, M |
|
(A) ←(M) |
0806 |
A9 |
XRA C |
|
(𝑨) ← (𝑨)⨁(𝑪) |
0807 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Переделанная 2.8.
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E B1 |
LDA |
0900 |
(A) ← M(0900) |
0802 |
EE B1 |
XRI |
B1 |
(𝑨) ← (𝑨)⨁𝐵1 |
0804 |
FF |
RST 7 |
|
Прервать выполнение Программы |
3. Исследование команд вспомогательных логических и арифметических операций
Сравнить числа 3D16 и 2216, 3D16 и 8F16, 3D16 и 3D16, используя одну из команды: CMP RS, CMP M, CPI B2.
Программа сравнения двух однобайтных чисел (регистровая адресация)
-
Адрес
Машинный
код
Мнемоника
команды
Операнд
Комментарий
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.
Таблица 34
Программа сравнения двух однобайтных чисел (регистровая косвенная адресация)
-
Адрес
Машинный
код
Мнемоника
команды
Операнд
Комментарий
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.
Таблица 35
Программа сравнения двух однобайтных чисел (непосредственная адресация)
-
Адрес
Машинный
код
Мнемоника
команды
Операнд
Комментарий
0800
3E 3D
MVI A,
3D
(A) ← 3D
0802
FE 3D
CPI
3D
(F) ← (A) – 3D
0804
FF
RST 7
Прервать выполнение
Программы
Проверить и зафиксировать в отчете содержимое регистров А, F.
Таблица 36
Задан массив чисел: 0А00 ← 0116; 0А01 ← 0516; 0А02 ← 0216; 0А03 ← 0116. Пользуясь командами INX R и DCX R, определить сумму элементов массива. Перед выполнением программы необходимо ввести массив в память.
Программа поиска суммы элементов массива (команда 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
080A
86
ADD M
(A) ← (A) + (M)
080B
FF
RST 7
Прервать выполнение
Программы
Программа поиска суммы элементов массива (команда 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.
Таблица 37
Таблица 38
Задан массив чисел: 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
Прервать выполнение
Программы
Проверить правильность выполнения программы. Записать исходный и модифицированный массивы данных.
Определите сумму трех однобайтных чисел, находящихся по адресам 0921 (0316), 0A10 (0516), 0BC9 (0116), пользуясь командой сложения содержимого регистровых пар DAD R. Предварительно необходимо записать числа в память.
Программа поиска суммы чисел массива
-
Адрес
Машинный
код
Мнемоника
команды
Операнд
Комментарий
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.