Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба1_Игнат.docx
Скачиваний:
1
Добавлен:
26.08.2019
Размер:
157.6 Кб
Скачать

Мал.1.7. Зменшення адресного регістру

При натисканні на кнопку "ЗАПИСЬ" дві цифри даних (1 байт), які висвічуються на крайніх правих розрядах ІРД, записуються до чарунки пам'яті, адреса якої у даний момент висвічується на ІАР. Далі ця адреса збільшується на одиницю і дані, записані за цією новою адресою, висвічуються у двох молодших розрядах ІРД. Дані, що висвічувалися у цих розрядах у попередній момент, переносяться в два лівих розряди ІРД (мал.1.8).

Натиск клавіш

І А Р

І Р Д

8

2

1

2

1

1

B

4

A

B

8

2

1

2

B

4

A

B

ЗАПИСЬ

8

2

1

3

A

B

1

1

Мал.1.8. Запис і прирощення адресного регістра

Перемикач "ШАГ–АВТ" встановлює один з цих режимів. Встановлення його в положення "ШАГ" необхідне тільки для операцій системи в покроковому режимі виконання програми за командами "ПУСК" та "ВОЗВР". Покроковий режим можливий завдяки використанню режиму переривання МП. Систему переривань буде розглянуто у наступних роботах.

Лабораторна робота № 2.

Пам'ять мікроеом. Дослідження режимів виконання програми в покроковому і автоматичному режимах

Мета роботи: навчитися здійснювати введення програми та її виконання в автоматичному та покроковому режимах.

Короткі теоретичні відомості

В сучасних мікропроцесорних ЕОМ використовуються нуль- і одноадресні команди, тобто коли разом з кодом операції (КОП) передається адреса операнда або він відсутній. В останньому випадку операнд розміщується в регістрі і його адреса закодована у КОП. Окрім адреси разом із КОП може передаватися безпосередній операнд, необхідний для виконання цієї команди. Формати команд і КОП для різних ЕОМ різняться між собою. Розглянемо різні команди МП К580ВМ80. Передача КОП, адрес і безпосередньо даних із пам'яті здійснюється по восьмирозрядній шині даних (ШД). Шина адреси (ША) містить 16 двійкових розрядів, тому передача адреси здійснюється двома машинними словами. Безпосереднє дане і КОП містять у собі по 8 біт і передаються кожне одним словом (байтом). З врахуванням сказаного МП в даній мікролабораторії оперує з командами трьох форматів (мал.2.1).

КОП

В1

КОП

Безпосереднє дане /адреса ПВВ

В1

В2

КОП

Безпосередня адреса /дані

В1

В2

В3

Мал.2.1. Формати команд МП К580ВМ80

Команди програми, які призначені для виконання, послідовно розміщуються в чарунках пам'яті. У зв'язку із різними форматами команд, вони можуть займати від одного до трьох сусідніх адрес пам'яті. Мікропрограмний пристрій керування МП на основі КОП, який міститься в 1-му байті команди, визначає, скільки байтів містить команда і здійснює процедуру їх зчитування, автоматично збільшуючи адресу на одиницю при кожному зверненні до пам’яті. По закінченні виконання поточної команди вміст програмного лічильника (РС) збільшується на одиницю і вказує вже на КОП наступної команди. Команди безумовного переходу і виклику підпрограм завершуються занесенням до РС потрібних адрес переходу й виклику. При виконанні ж умовних переходів і викликів потрібні адреси переходу і виклику завантажується до РС лише при виконанні перевіряємої умови.

Якщо у команді міститься адреса, наприклад, 1284, то молодші дві цифри складають другий байт В2 і старші дві цифри — третій байт В3 коду команди. Про це необхідно пам'ятати при складанні програми у кодах та при аналізі виконання програми у покроковому режимі.

Оскільки КОП, адреса та дані кодуються однаково, важливим елементом роботи мікроЕОМ є пуск програми з вірної початкової адреси, яка повинна вказувати на КОП першої команди програми. У протилежному випадку зчитаний байт (це може бути один із байтів адреси або безпосередній операнд) буде інтерпретований МП як код деякої команди і вона буде виконана. Імовірність вірного виконання програми користувача при цьому близька до нуля.

Для розміщення програм в пам'яті необхідно знати фактичні області адрес, які доступні для читання (ПЗП) і двонаправленої передачі (ОЗП). Пам'ять мікролабораторії розміщена в областях адресного простору у відповідності з мал.2.2.

Адреса

Обсяг пам'яті

ОЗП / ПЗП

Призначення

FFFF

........

8400

31K

Невикористана область

83FF

........

83C7

57

ОЗП

Робоча область

монітора

83C6

.......

8000

967

ОЗП

Область користувача

7FFF

.......

0600

305K

Невикористана область

05FF

.......

0400

512

ПЗП

Область користувача

03FF

.......

0000

1K

ПЗП

Область монітора

Мал. 2.2 Карта пам'яті мікролабораторії

Очевидно, що програми користувача, які знаходяться на етапі відлагодження, можуть бути розміщені тільки в ОЗП в області адрес з 8000 до 83С6. Наступні 57 чарунок ОЗП є також програмно-доступні, але вони використовуються монітором мікролабораторії для спеціальних цілей. Якщо не передбачається робота з монітором, то і ці чарунки можуть бути відведені під команди програм користувача. Підготовлена і відлагоджена програма може бути переписана в ПЗП. При цьому необхідно пам'ятати, що перенос програми з однієї області пам'яті в іншу супроводжується зміною адрес команд переходів та ідентифікаторів, тому переміщення програми при ручному програмуванні пов’язане з можливістю появи непередбачених помилок. Запис до ПЗП може бути здійснений тільки на зовнішньому обладнанні.

Для вірного кодування та декодування команд необхідна спеціальна таблиця (додаток 1), за допомогою якої легко простежити за виконанням програми.

Завантаження програми здійснюється у вже раніше розглянутій послідовності дій з ОЗП мікролабораторії. Якщо вона буде виконуватися в автоматичному режимі, то перемикач "ШАГ-АВТ" належить встановити у положення "АВТ". Коли перенос програми до пам'ять завершено, необхідно на ІАР установити пускову адресу. Для виконання програми треба натиснути кнопку "Пуск".

Для ознайомлення з можливостями мікролабораторії доцільно скористатися демонстраційною програмою, записаною в ПЗП користувача. Пускова адреса програми 0300.

Виконання програми у покроковому режимі здійснюється під управлінням монітора при установці перемикача "ШАГ-АВТ" у положення "ШАГ". Кожне натискання на кнопку "Пуск" призводить до виконання чергової команди та зупинки обчислювального процесу. Цей режим є зручним при відлагодженні програм управління периферійним обладнанням, оскільки дозволяє у будь-який момент провести модифікацію і нове виконання програми.

Розглянемо виконання програми,алгоритм якої показаний на мал.2.3.

Мал.2.3 Схема алгоритма найпрстішої програми.

Програма містить у собі дві команди: перша NOP не вносить ніяких змін у стан МП та системи; друга - безумовний перехід на адресу першої команди (JMP <адреса>). Команда NOP однобайтна, її код - шістнадцяткове число 00. Друга команда трьохбайтна, її код - C3. Другий і третій байт є адреса передачі керування.

На символьній мові Асемблера програма має вигляд:

BEG: NOP

JMP BEG

Позначка BEG є адресою переходу, тобто адресою команди NOP. Пускову адресу програми встановимо 8000 (адреса першої чарунки ОЗП користувача). Програма в кодах МП зображена на мал.2.4.

Адреса

Вміст

Команда

8000

00

BEG:

NOP

8001

С3

JMP BEG

8002

00

8003

80

Мал. 2.4. Розміщення учбової програми по мал. 2.3. у пам'яті МП.

Послідовність чотирьохзначних адрес - це адреси чарунок ОЗП, а їх вміст - коди команд і адреса переходу, які записані за цими адресами. Розташування байтів даних для команд довжиною у 2 і 3 байта в такій формі затруднює читання великих програм, тому їх записують в іншій формі:

8000

00

BEG:

NOP

8001

C3 0080

JMP BEG

Якщо б у програмі була б ще одна команда, то в графі адреса їй відповідало б значення 8004.

Виконання цієї програми у покроковому режимі при спостереженні за ІАР та ІРД ілюструє механізм взаємодії МП, пам'яті та системи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]