
- •7.090260 – Технологія будування авіаційних двигунів
- •8.090214 – Підйомно-транспортні, будівельні, дорожні машини і обладнання
- •1 ТеоретичнА частина
- •2 Лабораторна робота № 1. Вивчення методів адресації на прикладах простих арифметичних операцій
- •3. Лабораторна робота № 2. Логічні операції і маскування
- •4. Лабораторна робота № 3. Виконання галужень в програмах
- •5. Лабораторна робота № 4. Виконання арифметичних і логічних операцій з багатобайтнимі цілими числами
- •6. Лабораторна робота № 5. Стекова організація пам'яті і робота із стеком
- •Перелік пОсилань
- •Додаток а
5. Лабораторна робота № 4. Виконання арифметичних і логічних операцій з багатобайтнимі цілими числами
Мета роботи
Придбання навиків в роботі з багатобайтними цілими числами.
Загальні відомості
Основними арифметичними операціями при роботі з багатобайтними числами є складання і віднімання. При цьому, виконуючи складання, треба враховувати біт перенесення (біт С регістра стану), отриманий в молодших розрядах, а при виконанні віднімання – позики (біт С регістра стану).
Команда складання з перенесенням (ADC, ACI) і віднімання з позикою (SBB, SBI) застосовується в тих випадках, коли базової довжини слова мікропроцесора недостатньо і доводиться вводити багаторозрядні числа з послідовною обробкою окремих байтів. У пам'яті такі числа зберігаються в суміжних комірках і адресуються за молодшим байтом.
Для виконання дії складання двобайтових чисел можна використовувати команду DAD – складання багатобайтних чисел з урахуванням позики/перенесення.
При виконанні операцій ділення і множення багатобайтних чисел на числа кратні 2 можуть бути також використані команди арифметичного зсування RAR і RAL. Для обміну бітами між сусідніми байтами використовується біт позики/перенесення С регістра стану. Причому, при діленні на 2 зсування вправоруч (RAR) необхідно починати із старшого байта, а при множенні – зсування вліворуч (RAL) з молодшого.
Логічні операції з багатобайтними цілими числами виконуються аналогічно однобайтним, при цьому операції виконуються між однойменними байтами числа. В процесі виконання логічних операцій позик і перенесень між байтами чисел не виникає.
Порядок виконання роботи
Увімкнути ПЕВМ. Увійти до робочого середовища Windows під своїм паролем. Для запуску емулятора завантажте програму k120.bat з директорії c:\Program files\int8080.
Виконати наступні обов'язкові завдання
Завдання 4.1. Написати програму для вирішення такого математичного виразу:
[(04AC0FH
+ EC05H) : 2 – 115BH ∙ 4]→(
)
(5.1)
Лістинг програми з докладними коментарями приведений в таблиці 4.1.
Результат роботи програми показати викладачеві.
Завдання 4.2. Написати програму для вирішення такого математичного виразу:
[(2101)(2100)
∙ 5]→(
)
(5.2)
Лістинг програми з докладними коментарями приведений в таблиці 4.2.
Результат роботи програми показати викладачеві, заздалегідь завантаживши в комірки (2100) і (2101) відповідно 50Н і 60Н.
Завдання 4.3. Написати програму для вирішення такого математичного виразу:
[1780H
(2101)(2100)
(2103)(2102)]→(
)
(5.3)
Лістинг програми з докладними коментарями приведений в таблиці 4.3.
Результат роботи програми показати викладачеві, заздалегідь завантаживши в комірки (2100), (2101), (2102), (2103) відповідно 10Н, 20Н, 30Н і 40Н.
Таблиця 5.1
Адреса |
Код |
Мнемоніка |
Коментар |
виконати дію 115ВН ∙ 4Н |
|||
2200 |
3E 5B |
MVI A, 5BH |
5BH→(A) |
2202 |
B7 |
ORA A |
Біт С=0 |
2203 |
17 |
RAL |
(A) ∙ 2→(A) |
2204 |
6F |
MOV L, A |
(A)→(L) |
2205 |
3 11 |
MVI A, 11H |
11H→(A) |
2207 |
17 |
RAL |
(A) ∙ 2→(A) |
2208 |
67 |
MOV H, A |
(A)→(H) |
2209 |
7D |
MOV A, L |
(L)→(A) |
220A |
B7 |
ORA A |
Біт С=0 |
220B |
17 |
RAL |
(A) ∙ 2→(A) |
220C |
6F |
MOV L, A |
(A)→(L) |
220D |
7C |
MOV A, H |
(H)→(A) |
220E |
17 |
RAL |
(A) ∙ 2→(A) |
220F |
67 |
MOV H, A |
(A)→(H) |
виконати дію 04AC0FH+EC05 |
|||
2210 |
3E 0F |
MVI A, 0FH |
0FH→(A) |
2212 |
C6 05 |
ADI 05H |
(A)+05H→(A) |
2214 |
5F |
MOV E, A |
(A)→(E) |
2215 |
3E AC |
MVI A, 0ACH |
ACH→(A) |
2217 |
CE EC |
ACI 0ECH |
(A)+ECH+Біт С→(А) |
2219 |
57 |
MOV D, A |
(A)→(D) |
221A |
3E 04 |
MVI A, 04H |
04H→(A) |
221C |
CE 00 |
ACI 00H |
(A)+0+ Біт С→(А) |
виконати дію (04AC0FH+EC05):2 |
|||
221E |
B7 |
ORA A |
Біт С=0 |
221F |
1F |
RAR |
(A):2→(A) |
2220 |
4F |
MOV C, A |
(A)→(C) |
2221 |
7A |
MOV A, D |
(D)→(A) |
2222 |
1F |
RAR |
(A):2→(A) |
2223 |
57 |
MOV D, A |
(A)→(D) |
2224 |
7B |
MOV A, E |
(E)→(A) |
2225 |
1F |
RAR |
(A):2→(A) |
виконати дію (04АС0FH + ЕС05) : 2 - 115ВН ∙ 4 |
|||
2226 |
95 |
SUB L |
(A)-(L)→(A) |
2227 |
32 02 21 |
STA 2102H |
(A)→(2102) |
222A |
7A |
MOV A, D |
(D)→(A) |
222B |
9C |
SBB H |
(A)-(H)-Біт С→(A) |
222C |
32 01 21 |
STA 2101H |
(A)→(2101) |
222F |
79 |
MOV A, C |
(C)→(A) |
2230 |
DE 00 |
SBI 00H |
(A)-0-Біт С→(A) |
2232 |
32 00 21 |
STA 2100H |
(A)→(2100) |
2235 |
76 |
HLT |
зупинення |
Таблиця 5.2
Адреса |
Код |
Мнемоніка |
Коментар |
виконати дію (2101)(2100) • 4 |
|||
2200 |
2A 0021 |
LHLD 2100H |
(2100)→(L);(2101)→(H) |
2203 |
7D |
MOV A, L |
(L)→(A) |
2204 |
B7 |
ORA A |
Біт С=0 |
2205 |
17 |
RAL |
(A) ∙ 2→(A) |
2206 |
4F |
MOV C, A |
(A)→(C) |
2207 |
7C |
MOV A, H |
(H)→(A) |
2208 |
17 |
RAL |
(A) ∙ 2→(A) |
2209 |
47 |
MOV B, A |
(A)→(B) |
220A |
B7 |
ORA A |
Біт С=0 |
220B |
79 |
MOV A, C |
(C)→(A) |
220C |
17 |
RAL |
(A) ∙ 2→(A) |
220D |
4F |
MOV C, A |
(A)→(C) |
220E |
78 |
MOV A, B |
(B)→(A) |
220F |
17 |
RAL |
(A) ∙ 2→(A) |
2210 |
47 |
MOV B, A |
(A)→(B) |
виконати дію (2101)(2100) • 4+(2101)(2100) |
|||
2211 |
09 |
DAD B |
(HL)+(BC)→(HL) |
2212 |
22 02 21 |
SHLD 2102H |
(H)→(2103);(L)→(2102) |
2215 |
76 |
HLT |
зупинення |
Таблиця 5.3
Адреса |
Код |
Мнемоніка |
Коментар |
2200 |
3A 00 21 |
LDA 2100H |
(2100)→(A) |
2203 |
EE 80 |
XRI 80H |
(A) 80H→(A) |
2205 |
47 |
MOV B, A |
(A)→(B) |
2206 |
3A 02 21 |
LDA 2102H |
(2102)→(A) |
2209 |
A8 |
XRA B |
(A) (B)→(A) |
220A |
32 04 21 |
STA 2104H |
(A)→(2104) |
220D |
3A 01 21 |
LDA 2101H |
(2101)→(A) |
2210 |
EE 17 |
XRI 17H |
(A) 17H→(A) |
2212 |
47 |
MOV B, A |
(A)→(B) |
2213 |
3A 03 21 |
LDA 2103H |
(2103)→(A) |
2216 |
A8 |
XRA B |
(A) (B)→(A) |
2217 |
32 05 21 |
STA 2105H |
(A)→(2105) |
221A |
76 |
HLT |
зупинення |
Завдання 4.4. Самостійно написати програму для вирішення математичного виразу згідно варіанту (таблиця 4.4).
Таблиця 5.4
№ варіанту |
Завдання |
Дані для перевірки |
1 |
[(2103)(2102)
: 2] – [(2101)(2100) ∙ 5] → ( |
90Н→(2100);64Н→(2101); 77Н→(2102); 62Н→(2103) |
2 |
[(2101)(2100)
:
3]
– [(2103)(2102)
∙ 2,25 +8785H]
→ ( |
55Н→(2100);95Н→(2101); 77Н→(2102); 12Н→(2103) |
3 |
[(2107)(2106)
– E2E4H]
[FF01H
+ (2101)(2100)]
→ ( |
14Н→(2100);55Н→(2101); 92Н→(2102); 67Н→(2103) |
4 |
[(2103)(2102) : 2] + (2101)(2100) ∙ 2 – 1732H → ( ) |
80Н→(2100);FE→(2101); 34Н→(2102); 99Н→(2103) |
5 |
[(2103)(2102)] · 5,125 – (2101)(2100) → ( ) |
30Н→(2100);04Н→(2101); 88Н→(2102); 97Н→(2103) |
6 |
{E087H
–
[(2101)(2100)]}
:
6
→ ( |
70Н→(2100);49Н→(2101) |
7 |
[(2103)(2102) : 3] – [(2101)(2100) : 4] → ( ) |
90Н→(2100);64Н→(2101); 77Н→(2102); 62Н→(2103) |
8 |
[3A45H – (2101)(2100)] + (2103)(2102) ∙ 2,5→ ( ) |
F1→(2100);BC→(2101); D4→(2102); 69Н→(2103) |
9 |
3365H – (2101)(2100) : 2 + [(2103)(2102) ∙ 4]→ ( ) |
AA→(2100);D6→(2101); 27Н→(2102); 67Н→(2103) |
10 |
[(2103)(2102) – (2101)(2100)] · 3,125 → ( ) |
69Н→(2100);66Н→(2101); 44Н→(2102); 92Н→(2103) |
11 |
[D53AH – (2101)(2100)] ∙ 8,5 → ( ) |
33Н→(2100);74Н→(2101) |
12 |
[(2101)(2100) : 2 +3435H] – A53FH → ( ) |
88Н→(2100);45Н→(2101) |
13 |
[35DAH : 2] [(2101)(2100) – 9999H] → ( ) |
11Н→(2100);69Н→(2101) |
14 |
[(2103)(2102) – (2101)(2100)] · 4,5 → ( ) |
40Н→(2100);69Н→(2101); 75Н→(2102); 57Н→(2103) |
15 |
[(2103)(2102) – BA98H] – [6347H (2101)(2100)] → ( ) |
12Н→(2100);6C→(2101); DE→(2102); 09Н→(2103) |
16 |
[8897H · 2,125] [(2101)(2100) + 2784H]→ ( ) |
78Н→(2100);97Н→(2101) |
17 |
{1050H + [(2101)(2100)]} · 4 → ( ) |
99Н→(2100);77Н→(2101) |
18 |
[ (2101)(2100)] · 2 +[(2103)(2102) - 1578H] → ( ) |
56Н→(2100);76Н→(2101); 45Н→(2102); 88Н→(2103) |
Продовження таблиці 5.4
19 |
[(2101)(2100) : 4] (2103)(2102)→ ( ) |
E4→(2100);51Н→(2101); DA→(2102); 32Н→(2103) |
20 |
(2101)(2100) + 4580H –[(2103)(2102) : 2]→ ( ) |
70Н→(2100);69Н→(2101); 67Н→(2102); 42Н→(2103) |
21 |
[(2101)(2100) V (2103)(2102)] · 5 → ( ) |
99Н→(2100);44Н→(2101); 72Н→(2102); 68Н→(2103) |
22 |
[(2101)(2100) 2045H] : 4 → ( ) |
05Н→(2100);12Н→(2101) |
23 |
[(2101)(2100) - 2550H] V 2050H → ( ) |
99Н→(2100);67Н→(2101); |
24 |
[(2101)(2100) + 9530H] (2103)(2102) → ( ) |
D5→(2100);11Н→(2101); 97Н→(2102); CF→(2103) |
25 |
[(2101)(2100) - (2103)(2102)] · 3 → ( ) |
87Н→(2100);33Н→(2101); 43Н→(2102); 11Н→(2103) |
26 |
[2055H + (2101)(2100)] - [FE70H V 7868H] → ( ) |
0D→(2100);FE→(2101) |
27 |
[(2101)(2100) - 159AH] V [40F5H · 2]→ ( ) |
97Н→(2100); 55Н→(2101) |
28 |
[(2101)(2100) + 350FH] - [(2103)(2102) : 2]→ ( ) |
55Н→(2100);68Н→(2101); 27Н→(2102); 82Н→(2103) |
29 |
[175AH · 2] V [ (2101)(2100) : 2] → ( ) |
98Н→(2100);64Н→(2101) |
30 |
[(2101)(2100) (2103)(2102)] : 4 → ( ) |
8D→(2100);69Н→(2101); 33Н→(2102); BE→(2103) |
Зміст звіту
Тема, мета роботи.
Лістинги програм написаних самостійно і перевірка.
Висновки.
Контрольні запитання
Виконання складання і віднімання багатобайтных цілих чисел.
Виконання ділення і множення на число кратне 2 багатобайтного цілого числа.
Призначення біта позики/перенесення регістра стану при виконанні арифметичних дій з багатобайтними цілими числами.
Виконання логічних операцій над багатобайтними цілими числами.
Написання програм для вирішення арифметичних рівнянь.