
- •7.090260 – Технологія будування авіаційних двигунів
- •8.090214 – Підйомно-транспортні, будівельні, дорожні машини і обладнання
- •1 ТеоретичнА частина
- •2 Лабораторна робота № 1. Вивчення методів адресації на прикладах простих арифметичних операцій
- •3. Лабораторна робота № 2. Логічні операції і маскування
- •4. Лабораторна робота № 3. Виконання галужень в програмах
- •5. Лабораторна робота № 4. Виконання арифметичних і логічних операцій з багатобайтнимі цілими числами
- •6. Лабораторна робота № 5. Стекова організація пам'яті і робота із стеком
- •Перелік пОсилань
- •Додаток а
6. Лабораторна робота № 5. Стекова організація пам'яті і робота із стеком
Мета роботи
Ознайомиться із стековою організацією пам'яті, і навчитися працювати із стеком.
Загальні відомості
У обчислювальній техніці широко використовується стекова організація оперативної пам'яті, яка працює за алгоритмом: останній прийшов – перший вийшов.
У мікропроцесорі Intel-8080 для стекової організації пам'яті виділений спеціальний 16-розрядний регістр (покажчик стека). Завантаження в стек і вивантаження із стека проводиться 16-розрядними числами, для передачі і прийому яких використовуються регістрові пари (НL), (BC), (DE), а також (PSW), яка включає акумулятор і регістр стану.
Стекова пам'ять може бути організована в будь-якій ділянці ОЗП, шляхом завантаження в покажчик стека (SP) відповідної адреси (верхівки стека). Для завантаження покажчика стека використовується команда:
LXI SP, <B3B2>, де третій і другий байт команди, в яких
знаходиться адреса ОЗП (верхівки стека).
Завантаження стека проводиться завжди у бік молодших адрес, а вивантаження – у бік старших.
Для завантаження стека використовуються команди:
PUSH B, PUSH D, PUSH H, PUSH PSW.
Вміст 16-розрядної регістрової пари зберігається на дідянці ОЗП, на яку указує покажчик стека SР, тобто в комірках з адресами (SР)–1 – старший байт і (SР)–2 – молодший байт.
Для вивантаження стека використовуються команди:
POP B, POP D, POP H, POP PSW
16-розрядна регістрова пара завантажується вмістом верхівки стека, тобто комірок ОЗП з адресами (SP) і (SP)+1 (покажчик стека потім знову збільшується на 1).
Порядок виконання роботи
Увімкнути ПЕВМ. Увійти до робочого середовища Windows під своїм паролем. Для запуску емулятора завантажте програму k120.bat з директорії c:\Program files\int8080.
Виконати наступні обов'язкові завдання
Завдання 5.1. Написати програму для вирішення такого завдання:
(6.1)
Розрахувати суму масиву А, ОЗП, що складається з десяти чисел і розташованого в комірках (2110)…(2119). Лістинг програми з докладними коментарями приведений в таблиці 6.1.
Результат роботи програми показати викладачеві.
Таблиця 6.1
Адреса |
Код |
Мітка |
Мнемоніка |
Коментар |
2200 |
31 10 21 |
|
LXI SP, 2110H |
2100H→(SP) |
2203 |
06 05 |
|
MVI B, 05H |
C5H→(B) |
2205 |
AF |
|
XRA A |
(A)=0 |
2206 |
D1 |
L1: |
POP D |
(SP)(SP+1)→(DE) |
2207 |
82 |
|
ADD D |
(A)+(D)→(A) |
2208 |
83 |
|
ADD E |
(A)+(E)→(A) |
2209 |
05 |
|
DCR B |
(B)-1→(B) |
220A |
C2 06 22 |
|
JNZ L1 |
якщо (B)>0→L1 |
220D |
32 00 21 |
|
STA 2100H |
(A)→(2100) |
2210 |
76 |
|
HLT |
зупинення |
Завдання 5.2. Самостійно написати програму для вирішення математичного виразу згідно варіанту (таблиця 6.2).
Де Ai – масив, що складається з десяти чисел, розташованого в межах ОЗП (2110)…(2119).
Таблиця 6.2
№ варіанту |
Завдання |
1 |
Знайти
суму |
2 |
Обнулити всі елементи масиву до максимального |
3 |
Знайти
суму |
4 |
Знайти
суму |
5 |
Знайти номер першого елемента масиву що дорівнює нулю |
6 |
Знайти номер першого парного елемента |
7 |
Знайти максимальний елемент масиву |
8 |
Знайти мінімальний елемент масиву |
9 |
Знайти суму максимального і мінімального елементів масиву |
10 |
Знайти суму першого і максимального елементів масиву |
11 |
Знайти суму першого і мінімального елементів масиву |
12 |
Знайти
суму |
13 |
Знайти номер першого непарного елемента масиву |
14 |
Знайти
суму
де
|
15 |
Знайти
суму
де
|
Продовження таблиці 6.2
16 |
Знайти кількість непарних елементів масиву |
17 |
Знайти кількість парних елементів масиву |
18 |
Знайти кількість елементів масиву рівних 15Н |
19 |
Знайти
суму |
20 |
Парні елементи масиву поділити на 2, а непарні - помножити на 2 |
21 |
До парних елементів масиву додати 10, а до непарних 13 |
22 |
Усі елементи масиву що дорівнюють нулю замінити на максимальний |
23 |
Максимальний і мінімальний елементи масиву поміняти місцями |
24 |
Знайти суму парних елементів масиву |
25 |
Знайти суму непарних елементів масиву |
26 |
Знайти суму елементів розташованих за парними адресами |
27 |
Знайти суму елементів розташованих за непарними адресами |
28 |
Від парних елементів масиву відняти 25, а до непарних – додати 15 |
29 |
Максимальний елемент масиву розділити на мінімальний |
30 |
Знайти кількість елементів між мінімальним і максимальним |
Зміст звіту
Тема, мета роботи.
Лістинги програм написаних самостійно і перевірка.
Висновки.
Контрольні запитання
Як встановлюється верхівка стека.
Як реалізується завантаження інформації в стек.
Як реалізується вивантаження інформації із стека.
Який метод адресації використаний при роботі із стеком.