Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНА РОБОТА общее.doc
Скачиваний:
33
Добавлен:
18.03.2015
Размер:
5.16 Mб
Скачать

Програма рахунку

На мал.2, показана структурна схема програми, що "змушує" комірку пам'яті вважати у двійковому коді від 0 до 255 і потім повторювати цей рахунок.

Спочатку один регістр /у цьому випадку акумулятор/ установлюється в 0. Потім уміст акумулятора листується в комірку пам'яті з адресою 8020 і збільшується на 1. Далі запис у комірку пам'яті повторюється знову. У табл.2, приводиться лістинг програми.

Рис.2. Структурна схема програми рахунку.

Програма починається з адреси 8004 замість 8000, так що потім можна додати кілька команд на початку програми /в "Мікролаб" 8000 - перший осередок ОЗУ, отже, програма користувача не може починатися раніше цієї адреси/ . Перша команда - МVI А, 0.

Лістинг програми рахунку таблиця2.

Адреса

Зміст

Мітки

Команди

Коментарі

8004

ЗЕ

МVI А, 0

Установка А в "0"

8005

00

8006

32

LООР:

SТА 8020

А- комірка пам'яті

8007

20

8008

80

8009

00

N0P

800А

INK А

Приростити А

800В

С3

JMP LOOP

Перехід до LООР

800С

06

800D

80

Вона завантажує в акумулятор нулі. Наступна команда - SТА 8020 пересилає вміст акумулятора в комірку пам'яті 8020. Код 32 в осередку з адресою 8006 указує, що це команда SТА. Коли процесор зчитує цей код, він "розуміє", що наступні два байти /адреси 8007 і 8008/ містять адресу, по якому повинне бути записане вміст акумулятора /у цьому випадку 8020/. Варто пам'ятати, що байти адреси записуються у зворотному порядку. Ця команда не змінює вмісту акумулятора, вона просто копіює дані в комірку пам'яті. За командою SТА йде команда NОР, щоб зарезервувати місце для наступного використання. Наступна команда - INR А, вона збільшує вміст акумулятора. Коли досягається максимальна величина рахунку /у двійковому коді -1111 1111, у шістнадцятковом - FF або 255 - у десятковому/, уміст акумулятора скидається й подальший рахунок іде з нуля. Це звичайний режим роботи двійкового лічильника.

Остання команда - перехід. Ця команда повертає програму до команди SТА, адреса 8006.

Проведемо експеримент по виконанню описаної програми в кроковому режимі.

1. Уведіть на згадку "Мікролаб" програму, наведену в табл.2. Перевірте правильність її запису на згадку.

2. Перемкнете тумблер режиму в положення КРОК.

3. Установите початкову адресу програми /8004/. На двох крайніх

правих індикаторах з'явиться команда МVI А /код ЗЕ/.

4. Натисніть кнопку ПУСК. Програма початку виконуватися в кроковому режимі. Перша команда виконана. Тепер на двох крайніх правих індикаторах висвітлений уміст регістра ознак, а вміст акумулятора з'явилося на третьому й четвертому індикаторах, уважаючи праворуч. На цих індикаторах видні нулі, тому що перша команда виконана й в акумулятор занесені нулі.

5. Натисніть кнопку ПУСК. Виконано команду SТА 8020. Уміст акумулятора не змінилося, у комірці пам'яті 8020 повинні з'явитися нулі. Щоб перевірити вміст цього осередку, натисніть кнопки 8, 0, 2, ПРО, а також кнопку УСТ.АД. На двох крайніх правих індикаторах - нулі. Це вміст осередку 8020. Набираючи будь-яку іншу адресу, можна переглянути будь-яку комірку пам'яті після кожного кроку виконання програми. Набираючи відповідні адреси, можна також переглянути й уміст регістрів МП /див. табл.1/.

6. Натисніть кнопку ВОЗВР. Тим самим ви повернулися до виконання вашої програми й виконали наступну команду /NОР/. На індикаторах знову з'явився вміст регістра ознак і акумулятора.

7. Натисніть кнопку ПУСК. Виконано команду INR А. На індикаторі видна одиниця, що свідчить про збільшення вмісту акумулятора.

8. Перевірте вміст осередку 8020. У ній перебувають нулі, тому що перепис одиниці з акумулятора в цей осередок ще не відбулася.

9. Натиснувши кнопку ВОЗВР., поверніться до виконання вашої програми.

10. Натисніть кнопку ПУСК, виконається наступна команда /SТА 8020/, тобто вміст акумулятора переписалося в осередок 8020.

11. Перевірте вміст осередку 8020. Тепер там перебуває одиниця.

12. Натиснувши кнопку ВОЗВР. і далі натискаючи кнопку ПУСК, виконаєте програму по кроках. Простежите, як міняється вміст акумулятора.