Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB-5_нов.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
143.36 Кб
Скачать

17

МIНIСТЕРСТВО ОСВIТИ І НАУКИ УКРАIНИ

НАЦІОНАЛЬНИЙ УНIВЕРСИТЕТ “ЛЬВIВСЬКА ПОЛIТЕХНIКА”

Кафедра ЕСМ

Застосування регістру стану мікропроцесора для організації розгалуження процесів методичні вказівки та інструкція

до виконання лабораторної роботи № 5

з дисципліни “Мікропроцесорна техніка в електроенергетиці”

для студентів базового напряму “Електротехніка та електротехнології”

Затверджено

на засіданні кафедри

«Електричні системи та мережі»

Протокол № 11 від 27.01. 2011 р.

Львів 2011

Застосування регістру стану мікропроцесора для розгалуження процесів: Методичні вказівки та інструкція до виконання лабораторної роботи № 5 3 з дисципліни “Мікропроцесорна техніка в електроенергетиці” для студентів для студентів базового напряму “Електротехніка та електротехнології”. /Укл. М.В. Базилевич, Б.І. Дурняк, Пазина Я.С. – Львів: Видавництво Національного університету "Львівська політехніка", 2011. – 16 с.

Укладачі: Базилевич М.В., асистент

Дурняк Б.І., асистент

Пазина Я.С., старший викладач

Відповідальний за випуск Г.М.Лисяк доц., канд. техн. наук

Рецензенти: Журахівський В.А., професор, доктор технічних наук

Мета роботи

Ознайомлення з особливостями структури регiстру стану мiкропроцесора, вивчення команд умовного та безумовного переходу та шляхiв їх використання для програмування розгалужених процесiв.

Регiстр прапорiв I команди переходу мп

1. Регiстр прапорiв

В МП КР580ВМ80 є 5 прапорiв - нуля (Z), знаку (S), парностi (P), переносу (C), додаткового переносу (AC). Кожний прапор - це один бiт регiстру стану, вмiст якого визначається вмiстом акумулятора. Прапор встановлений, якщо бiт дорiвнює 1, прапор скинутий, якщо бiт дорiвнює 0. Наприклад, прапор нуля (Z) встановлюється, тобто Z = 1, якщо вмiст акумулятора дорiвнює 0, i прапор нуля скидається, тобто Z = 0, якщо вмiст акумулятора не дорiвнює 0. Прапор знака (S) встановлюється, якщо старший бiт результату операцiї рiвний 1, в iншому випадку прапор скидається (S = 0). Прапор парностi (P) встановлюється, якщо акумулятор утримує парне число одиниць, i скидається, якщо непарне. Бiти прапорiв входять до складу так званого прапорового регiстру (регiстру стану), що складається з 8 розрядiв, з яких 5 - це бiти прапорiв, а 3 - не використовуються i мають постiйнi значення.

При виконаннi програми у кроковому режимi 2 крайнiх справа вiкна дисплею показують вмiст регiстра прапорiв. Наприклад, якщо у цих вiкнах показане число 46, то це означає, що пiднятi прапори Z i P.

2. Команди переходу

Є два типи команд переходу - безумовні та умовні. Команда безумовного переходу має позначення JMP [адр]. При виконаннi цiєї команди управлiння передається за адресою, яка знаходиться у 2 i 3 байтах команди. Команди умовних переходiв спочатку перевiряють стан одного з 4-х прапорiв, щоб визначити виконання умови в командi

JNZ [адр] - якщо вмiст акумулятора не дорiвнює 0, то управлiння передається за адресою у квадратних дужках;

JZ [адр] - те саме, але якщо вмiст акумулятора дорiвнюe 0;

JNC [адр] - те саме, якщо при операцii нема переносу;

JC [адр] - те саме, якщо є перенос;

JPO [адр] - те саме, якщо в акумуляторi непарне число одиниць; JPE [адр] - те саме, якщо в акумуляторi парне число одиниць;

JP [адр] - те саме, якщо плюс ;

JM [адр] - те саме , якщо мiнус;

Команди цієї групи змінюють нормальне послідовне виконання програми. Виконання команд не впливає на стан прапорів.

Є два типи команд переходу: безумовні та умовні. Безумовні команди переходу виконують передачу управління, змінюючи значення програмного лічильника РС. Команди умовного переходу спочатку перевіряють стан одного з чотирьох прапорів процесора, щоб визначити, виконана чи ні вказана в команді умова. Є слідуючі умови переходу:

Умова

Код

NZ - не ноль (Z=0)

000

Z - ноль (Z=1)

001

NC - нема переносу (CY=0)

010

C - є перенос (СY=1)

011

РО - непарний результат (Р=0)

100

РЕ - парний результат (Р=1)

101

Р - плюс (S=0)

110

М - мінус (S=1)

111

JMP [адр.] (ПЕРЕХІД)

(PC)  (байт 3) (байт 2)

Управління передається команді, адреса якої вказана у другому та третьому байтах команди переходу.

1

1

0

0

0

0

1

1

Молодший байт адреси

Старший байт адреси

JMP [адр.] С3

Цикли: 3

Стан: 10

Адресація: безпосередня

Прапори: нема

J (умова) [адр.] (УМОВНИЙ ПЕРЕХІД)

Якщо (ССС), то (PC)  (байт 3) (байт 2)

Якщо вказана умова істинна, то управління передається команді, адреса якої вказана у другому та третьому байтах команди переходу. Якщо умова хибна, то послідовний код програми не змінюється.

1

1

С

С

С

0

1

0

Молодший байт адреси

Старший байт адреси

JNZ [адр.] С2

JZ [адр.] СA

JNC [адр.] D2

JC [адр.] DA

JPO [адр.] E2

JPE [адр.] EA

JP [адр.] F2

JM [адр.] FA

Цикли: 3

Стан: 10

Адресація: безпосередня

Прапори: нема

CALL [адр.] (ВИЗОВ)

((SP) - 1)  (PCH)

((SP) - 2)  (PCL)

(SP)  (SP) - 2

(PC)  (байт 3) (байт 2)

Старші 8 біт адреси слідуючої команди пересилаються в комірку пам'яті, адреса якої на 1 менша вмісту вказівника СТЕКА SP. Молодші 8 біт адреси слідуючої команди пересилаються в комірку пам'яті, адреса якої на 2 менше величини вказівника СТЕКА SP. Вміст вказівника СТЕКА зменшується на 2. Управління передається команді, адреса якої вказана у другому та третьому байтах команди визову.

1

1

0

0

1

1

0

1

Молодший байт адреси

Старший байт адреси

CALL [адр.] CD

Цикли: 5

Стан: 18

Адресація: безпосередня/посередня регістрова

Прапори: нема

С (умова) [адр.] (УМОВНИЙ ВИЗОВ)

Якщо (ССС), то ((SP) - 1)  (PCH),

((SP) - 2)  (PCL),

(SP)  (SP) - 2,

(PC)  (байт 3) (байт 2)

Якщо вказана умова істинна, то виконуються дії, описані в команді CALL, в протилежному випадку послідовність виконання команд не змінюється .

1

1

С

С

С

1

0

0

Молодший байт адреси

Старший байт адреси

СNZ [адр.] С4

СZ [адр.] СС

СNC [адр.] D4

СC [адр.] DС

СPO [адр.] E4

СPE [адр.] EС

СP [адр.] F4

СM [адр.] FС

Цикли: 5

Стан: 18

Адресація: безпосередня/посередня регістрова

Прапори: нема

RET (ПОВЕРНЕННЯ)

(PCL)  ((SP))

(PCH)  ((SP) + 1)

(SP)  (SP) + 2,

Вміст комірки пам'яті, адреса якої міститься у вказівнику СТЕКА SP, пересилається у 8 молодших бітів програмного лічильника РС. Вміст комірки пам'яті, адреса якої на 1 більша вмісту вказівника СТЕКУ, пересилається у 8 старших бітів програмного лічильника. Вміст вказівника СТЕКУ збільшується на 2.

1

1

0

0

1

0

0

1

RET С9

Цикли: 3

Стан: 10

Адресація: посередня регістрова

Прапори: нема

R умова (УМОВНЕ ПОВЕРНЕННЯ)

якщо (ССС), то (PCL)  ((SP))

(PCH)  ((SP) + 1)

(SP)  (SP) + 2,

Якщо вказана умова істинна, то виконується дія, описана в команді RET, у протилежному випадку послідовність виконання команд не порушується.

1

1

С

С

С

0

0

0

RNZ С0

RZ С8

RNC D0

RC D8

RPO E0

RPE E8

RP F0

RM F8

Цикли: 3

Стан: 12

Адресація: посередня регістрова

Прапори: нема

RST n (РЕСТАРТ)

((SP) - 1)  (PCH)

((SP) - 2)  (PCL)

(SP)  ((SP) - 2)

(PC)  8*(NNN)

Старші 8 бітів адреси слідуючої команди пересилаються в комірку пам'яті, адреса якої на 1 менша вмісту вказівника СТЕКУ. Молодші 8 бітів адреси слідуючої команди пересилаються в комірку пам'яті, адреса якої на 2 менша вмісту вказівника СТЕКУ. Вміст вказівника СТЕКУ зменшується на 2. Управління передається команді, адреса якої рівна коду NNN, помноженому на 8.

1

1

N

N

N

1

1

1

RST 0 C7

RST 1 CF

RST 2 D7

RST 3 DF

RST 4 E7

RST 5 EF

RST 6 F7

RST 7 FF

Цикли: 3

Стан: 12

Адресація: посередня регістрова

Прапори: нема

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

0

N

N

N

0

0

0

Програмний лічильник після рестарту

PR умова (УМОВНЕ ПОВЕРНЕННЯ)

якщо (ССС), то (PCL)  ((SP))

(PCH)  ((SP) + 1)

(SP)  (SP) + 2,

Якщо вказана умова істинна, то виконується дія, описана в команді RET, у протилежному випадку послідовність виконання команд не порушується.

1

1

С

С

С

0

0

0

RNZ С0

RZ С8

RNC D0

RC D8

RPO E0

RPE E8

RP F0

RM F8

Цикли: 3

Стан: 12

Адресація: посередня регістрова

Прапори: нема

PCHL (ЗАВАНТАЖЕННЯ ВМІСТУ РЕГІСТРІВ H I L В ПРОГРАМНИЙ ЛІЧИЛЬНИК)

(PCH)  (H)

(PCL)  (L)

Вміст регістру H пересилається у 8 старших бітів програмного лічильника РС. Вміст регістру L пересилається у 8 молодших бітів програмного лічильника.

1

1

1

0

1

0

0

1

PCHL E9

Цикли: 1

Стан: 6

Адресація: регістрова

Прапори: нема

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