
- •7.090260 – Технологія будування авіаційних двигунів
- •8.090214 – Підйомно-транспортні, будівельні, дорожні машини і обладнання
- •1 ТеоретичнА частина
- •2 Лабораторна робота № 1. Вивчення методів адресації на прикладах простих арифметичних операцій
- •3. Лабораторна робота № 2. Логічні операції і маскування
- •4. Лабораторна робота № 3. Виконання галужень в програмах
- •5. Лабораторна робота № 4. Виконання арифметичних і логічних операцій з багатобайтнимі цілими числами
- •6. Лабораторна робота № 5. Стекова організація пам'яті і робота із стеком
- •Перелік пОсилань
- •Додаток а
3. Лабораторна робота № 2. Логічні операції і маскування
Мета роботи
Вивчення логічних операцій і організація маскування інформації.
Загальні відомості
У багатьох випадках при виконанні програм, а також організації керування зовнішніми об'єктами необхідно перевіряти або корегувати (маскувати) стан одного або декількох розрядів у регістрі-акумуляторі. Це робиться за допомогою команд логічних операцій.
Логічне множення “І”
Очищає розряд акумулятора, якщо у відповідному розряді маски буде записаний 0, і не змінює його, якщо – 1. Це правило виведене з розгляду операції кон'юнкції двох величин:
0Λ0=0; 0Λ1=0; 1Λ0=0; 1Λ1=1.
При цьому маска може бути представлена за допомогою безпосередньої, регістрової і посередньо-регістрової адресації:
ANI B2 – безпосередня реєстрація;
ANA R – регістрова адресація;
ANA M – посередньо-регістрова адресація.
Логічне множення позначаться знаками “Λ”, “И”, “and”.
Логічне складання “АБО”
Встановлює одиницю в розряді акумулятора, якщо у відповідному розряді маски буде записана 1, і зберігає інформацію в розряді акумулятора, якщо – 0. По суті це правило виведене з розгляду операції дизьюнкции двох величин:
0V0=0; 0V1=1; 1V0=1; 1V1=1.
При цьому маска може бути представлена за допомогою безпосередньої, регістрової і посередньо-регістрової адресації:
ORI B2 – безпосередня реєстрація;
ORA R – регістрова адресація;
ORA M – посередньо-регістрова адресація.
Логічне складання позначаться знаками “V”, “АБО”, “or”.
Операція логічного “виключного АБО”
Інвертує вміст розряду акумулятора, якщо у відповідному розряді маски записана 1, і не змінює його, якщо – 0.
Наприклад:
0
0=0;
0
1=1;
1
0=1;
1
1=0.
При цьому маска може бути представлена за допомогою безпосередньої, регістрової і посередньо-регістрової адресації:
XRI B2 – безпосередня реєстрація;
XRA R – регістрова адресація;
XRA M – посередньо-регістрова адресація.
Логічне виключне АБО позначаться знаками “ ”, “xor”.
Інвертування
Міняє вміст розрядів акумулятора на протилежне. Правило виведене з розгляду операції інверсії:
;
.
Команда CMA.
Порівняння
Використовується для порівняння двох операторів, один з яких завжди знаходиться в акумуляторі. Дана операція виконується шляхом неробочої команди віднімання з вмісту акумулятора вмісту другого операнда, представленого тим або іншим методом адресації. При цьому вміст акумулятора не змінюється, а встановлюються відповідні розряди регістра стану.
Другий операнд може бути представлений за допомогою безпосередньої, регістрової або посередньо-регістрової адресації:
CPI B2 – безпосередня реєстрація;
CMP R – регістрова адресація;
CMP M – посередньо-регістрова адресація.
Порядок виконання роботи
Увімкнути ПЕВМ. Увійти до робочого середовища Windows під своїм паролем. Для запуску емулятора завантажте програму k120.bat з директорії c:\Program files\int8080.
Виконати наступні обов'язкові завдання
Завдання 2.1. Написати програму для вирішення такого математичного виразу:
[(2100) V (2101) Λ (2102) 13H]→(2103) (3.1)
Лістинг програми з докладними коментарями приведений в таблиці 3.1. Для перевірки програми завантажити в комірки ОЗП (2100), (2101) і (2102) відповідно 17Н, 7FH і 0BН, результат роботи програми показати викладачеві.
Таблиця 3.1
Адреса |
Код |
Мнемоніка |
Коментар |
2200 |
21 01 21 |
LXI H, 2101H |
2100H→(HL) |
2203 |
7E |
MOV A, M |
M(HL)→(A) |
2204 |
23 |
INX H |
(HL)+1→(HL) |
2205 |
A6 |
ANA M |
A)ΛM(HL)→(A) |
2206 |
EE 13 |
XRI 13H |
(A) 13H→(A) |
2208 |
47 |
MOV B, A |
(A)→(B) |
2209 |
3A 00 21 |
LDA 2100H |
(2100)→(A) |
220С |
В0 |
ORA B |
(A)V(B)→(A) |
220В |
32 03 21 |
STA 2103H |
(A)→(2103) |
2210 |
76 |
HLT |
зупинення |
Завдання 2.2. Самостійно написати програму для вирішення математичного виразу згідно варіанту (Таблиця 3.2).
Зробити перевірку отриманих результатів в двійковій формі.
Зміст звіту
Тема, мета роботи.
Лістинги програм написаних самостійно і перевірка.
Висновки.
Таблиця 3.2
№ варіанту |
Завдання |
Дані для перевірки |
1 |
(2100) " (2101) L [(2102) : 2]→ (2103) |
76H→(2100); 84Н→(2101); C6→(2102) |
2 |
{30H + [(2100) V (2101)]} " 15H → (2102) |
97Н→(2100); В6→(2101) |
3 |
(2100)L [(2101) " (2102)] + (2103) → (2104) |
BE→(2100);A1→(2101);D5→(2102);7E→(2103) |
4 |
[(2100) · 2] " (2101) V 75H→ (2102) |
70Н→(2100);12Н→(2101) |
5 |
(2100) L (2101) " (2102) + 05Н→ (2103) |
F6→(2100);74Н→(2101);11Н→(2102) |
6 |
[(2100) · 2] " [(2101) L (2102)]→ (2103) |
81Н→(2100); 66Н→(2101); 98H→(2102) |
7 |
(2100) L 25H V (2101)→ (2102) |
19Н→(2100);05Н→(2101) |
8 |
[(2100) " 1АН L (2101) ] V 20H → (2102) |
8E→(2100);14Н→(2101) |
9 |
{10H V [ (2100) · 2]} " (2101) → (2102) |
98Н→(2100); В6H→(2101) |
10 |
[(2100) V (2101) + (2102)] " 2FH → (2103) |
F3→(2100);75Н→(2101);13Н→(2102) |
11 |
[10H V (2100)] " [20H L (2101)] → (2102) |
30Н→(2100);74Н→(2101) |
12 |
(2100) " 31H V [(2101) · 2] → (2102) |
28Н→(2100);9E→(2101) |
13 |
[(2100) V (2101)] " [50H + (2103)]→ (2102) |
47Н→(2100);34Н→(2101);98Н→(2103) |
14 |
[(2100) V (2101)] L [15H " (2102)] → (2103) |
72Н→(2100);9D→(2101) ;19Н→(2102) |
15 |
4 · (2100) V [(2101) L (2102) – 32H]→ (2103) |
84Н→(2100);66Н→(2101) ;82Н→(2102) |
16 |
[(2100) L A5H " (2101)]→ (2102) |
49Н→(2100);EF→(2101) |
17 |
[(2100) L (2101) " (2102) V 4BH] · 2→ (2103) |
8E→(2100);62Н→(2101) ;23Н→(2102) |
18 |
(2100) L [20H + (2101) V (2102)] → (2103) |
90Н→(2100);64Н→(2101);77Н→(2102) |
19 |
(2100) V [50H " (2101)] L 20H → (2102) |
36Н→(2100);67Н→(2101) |
20 |
[(2100) L (2101)] " 30H → (2102) |
5C→(2100);22Н→(2101) |
21 |
{[(2100) V (2101)] : 2} L (2102) → (2103) |
32Н→(2100);89Н→(2101);А1→(2102) |
22 |
[8CH V (2100)] " [(2101) · 2] → (2102) |
A6→(2100);4D→(2101) |
23 |
[(2100) V (2101)] L [(2102) " (2103)] → (2104) |
0D→(2100);FF→(2101);E3→(2102);A3→(2103) |
24 |
A3H V [(2100) : 2] L [(2101) → (2102) |
7B→(2100);D4→(2101) |
25 |
[(2100) V (2101) " 65H] L F0H→ (2102) |
33Н→(2100);E3→(2101) |
26 |
(2101) " {[30H V (2103)] : 4} → (2102) |
8CН→(2100);32Н→(2101) |
27 |
[(2100) L (2101) " (2102)] · 5,5 → (2103) |
99Н→(2103);67Н→(2104) ;B4→(2103) |
28 |
[0DH L (2101)] L [31H V (2100)]→ (2100) |
12Н→(2100);88Н→(2101); |
29 |
[(2100) : 2] L D4H V (2101) ∙ 2 → (2103) |
67Н→(2100);90Н→(2101) |
30 |
[7BH V (2100)] " [FFH – (2101)]→ (2102) |
84Н→(2100);12Н→(2101) |
Контрольні запитання
Призначення команди логічного множення.
Призначення логічної команди виключного «АБО».
Призначення команди логічного складання і інверсії.
Виконання порівнянь в МП Intel-8080.