Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка для лаб Арх_комп(Схемтех).doc
Скачиваний:
6
Добавлен:
08.05.2019
Размер:
1.76 Mб
Скачать

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

1. Занести в пам'ять мікролабораторії програму

2. Перевірити правильність введення.

3. Відпрацювати в автоматичному режимі всі стани автомата системи охоронної сигналізації згідно графу (рис. 16.1).

Контрольні питання

1. Пояснити програмну реалізацію процедури введення секретного коду.

2. Пояснити взаємодію елементів МП-системи при реалізації стану ЧЕКАННЯ та ОХОРОНА.

3. Де зберігаються коди введених водієм цифр секретного коду при постановці на. охорону?

4. Пояснити алгоритм утворення коду натиснутої клавіші при введенні секретного коду водієм після відкривання дверей.

5. Які програми «Монітору» використані в макеті?

6. Для чого потрібні команди, що розташовані за адресами 8002–8006?

Додаток. Система команд 8–розрядного однокристального мікропроцесора к580ик80а.

Мнемокод

Операція

Ознаки

Коментар

Група команд пересилання

MOV R1, R2

(R2)  R1

Не змінюються

Вміст R2 копіюється в R1

MOV R, M

(M(HL))  R

Не змінюються

Вміст вічка пам’яті за адресою, що є вмістом регістрів H, L, копіюється в R

MOV M, R

(R)  M(HL)

Не змінюються

Вміст регістра R копіюється у вічко пам’яті за адресою, що є вмістом регістрів H, L

XCHG

(HL)  (DE)

Не змінюються

Обмін вмістом двох пар регістрів (H, L) і (D, E)

SPHL

(HL)  SP

Не змінюються

Вміст пари регістрів H, L копіюється в укажчик стеку SP

LDAX RhRl

(M(RhRl))  A

Не змінюються

Вміст вічка пам’яті за адресою, що є вмістом пари регістрів RhRl, копіюється в регістр А

STAX RhRl

(A)  M(RhRl)

Не змінюються

Вміст регістра А копіюється у вічко пам’яті за адресою, що є вмістом пари регістрів RhRl

LDA **

(M(**))  A

Не змінюються

Вміст вічка пам’яті за адресою, що безпосередньо вказана в команді, копіюється в регістр А

STA **

(A)  M(**)

Не змінюються

Вміст регістра А копіюється у вічко пам’яті за адресою, що безпосередньо вказана в команді

LHLD **

(M(**))  L

(M(**+1))  H

Не змінюються

Вміст вічка пам’яті за адресою, що безпосередньо вказана в команді, копіюється в регістр L і вміст вічка пам’яті за адресою, що на одиницю більша безпосередньо вказаної в команді — в регістр H

SHLD **

(L)  M(**)

(H)  M(**+1)

Не змінюються

Вміст регістра L копіюється у вічко пам’яті за адресою, що безпосередньо вказана в команді, і вміст регістр H копіюється у вічко пам’яті за адресою, що на одиницю більша безпосередньо вказаної в команді

MVI R, #

#  R

Не змінюються

Другий байт команди завантажується в регістр R

MVI M, #

#  M(HL)

Не змінюються

Другий байт команди завантажується у вічко пам’яті за адресою, що є вмістом регістрів H, L

LXI RhRl, ##

##  RhRl

Не змінюються

Другий байт команди завантажується в старший регістр Rh, а третій байт команди — в молодший регістр Rl регістрової пари RhRl

PUSH RhRl

(Rh)  M(SP–1)

(Rl)  M(SP–2)

(SP) – 2  SP

Не змінюються

Вміст регістрової пари RhRl копіюється в стек (занесення в стек)

POP RhRl

(M(SP))  Rl

(M(SP+1))  Rh

(SP) + 2  SP

Не змінюються

Вміст двох вічок стекової області пам’яті копіюються в регістри регістрової пари RhRl (видобування із стека)

XTHL

(H)  (M(SP))

(L)  (M(SP–1))

Не змінюються

Обмін вмістом регістрів H, L і двох вічок стекової області пам’яті

IN port

(port)  A

Не змінюються

Введення інформації з порту вводу/виводу в регістр А

OUT port

(A)  port

Не змінюються

Виведення інформації з регістра А в порту вводу/виводу

Група команд арифметичних операцій

ADD R

(A) + (R)  A

Визначаються ознаки S, Z, AC, P, CY

До вмісту регістра А додається вміст регістра R. Результат утворюється в регістрі А

ADD M

(A) + (M(HL))  A

Визначаються ознаки S, Z, AC, P, CY

До вмісту регістра А додається вміст вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А

ADC R

(A) + (R) + (Тг СY)  A

Визначаються ознаки S, Z, AC, P, CY

До вмісту регістра А додається вміст регістра R і до молодшого розряду утвореної суми додається значення ознаки СY. Результат — в регістрі А

ADC M

(A) + (M(HL)) + (Тг СY)  A

Визначаються ознаки S, Z, AC, P, CY

До вмісту регістра А додається вміст вічка пам’яті за адресою, що є вмістом регістрів H, L, і до молодшого розряду утвореної суми додається значення ознаки СY. Результат — в регістрі А

DAD RhRl

(HL) + (RhRl)  HL

Визначається ознака C

До вмісту регістрової пари H, L (як до двобайтного числа) додається вміст регістрової пари RhRl. Результат — в регістровій парі HL

SUB R

(A) – (R)  A

Визначаються ознаки S, Z, AC, P, CY

Від вмісту регістра А віднімається вміст регістра R. Результат —в регістрі А

SUB M

(A) – (M(HL))  A

Визначаються ознаки S, Z, AC, P, CY

Від вмісту регістра А віднімається вміст вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А

SBB R

(A) – (R) – (Тг СY)  A

Визначаються ознаки S, Z, AC, P, CY

Від вмісту регістра А віднімається вміст регістра R і від молодшого розряду утвореної різниці віднімається значення ознаки СY. Результат — в регістрі А

SBB M

(A) – (M(HL)) – (Тг СY)  A

Визначаються ознаки S, Z, AC, P, CY

Від вмісту регістра А віднімається вміст вміст вічка пам’яті за адресою, що є вмістом регістрів H, L, і від молодшого розряду утвореної різниці віднімається значення ознаки СY. Результат — в регістрі А

INR R

(R) + 1  R

Визначаються ознаки S, Z, AC, P

Збільшення на одиницю вмісту регістра R (інкрементування)

INR M

(M(HL)) + 1  M(HL)

Визначаються ознаки S, Z, AC, P

Збільшення на одиницю вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L (інкрементування)

DCR R

(R) – 1  R

Визначаються ознаки S, Z, AC, P

Зменшення на одиницю вмісту регістра R (декрементування)

DCR M

(M(HL)) – 1  M(HL)

Визначаються ознаки S, Z, AC, P

Зменшення на одиницю вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L (декрементування)

INX RhRl

(RhRl) + 1  RhRl

Не змінюються

До вмісту регістрової пари RhRl (як до двобайтного числа) додається одиниця. Результат — в регістровій парі RhRl

DCX RhRl

(RhRl) – 1  RhRl

Не змінюються

Від вмісту регістрової пари RhRl (як від двобайтного числа) віднімається одиниця. Результат — в регістровій парі RhRl

ADI #

(A) + #  A

Визначаються ознаки S, Z, AC, P, CY

До вмісту регістра А додається другий байт команди. Результат утворюється в регістрі А

ACI #

(A) + # + (Тг СY)  A

Визначаються ознаки S, Z, AC, P, CY

До вмісту регістра А додається другий байт команди і до молодшого розряду утвореної суми додається значення ознаки СY. Результат — в регістрі А

SUI #

(A) – #  A

Визначаються ознаки S, Z, AC, P, CY

Від вмісту регістра А віднімається другий байт команди. Результат утворюється в регістрі А

SBI #

(A) – # – (Тг СY)  A

Визначаються ознаки S, Z, AC, P, CY

Від вмісту регістра А віднімається другий байт команди і від молодшого розряду утвореної різниці віднімається значення ознаки СY. Результат — в регістрі А

DAA

(A)2–10  (A)2

Визначаються ознаки S, Z, AC, P, CY

Вміст регістра А трансформується з двійкової форми в двійково–десяткову

Група команд логічних операцій

ANA R

(Ai)  (Ri)  Ai

(i = 07)

Визначаються ознаки S, Z, P.

CY = 0; AC = A3.

Операція порозрядного логічного множення вмісту регістра А і вмісту регістра R. Результат — в регістрі А

XRA R

(Ai)  (Ri)  Ai

(i = 07)

Визначаються ознаки S, Z, P.

CY = AC = 0.

Операція порозрядного логічного додавання за mod 2 вмісту регістра А і вмісту регістра R. Результат — в регістрі А

ORA R

(Ai) V (Ri)  Ai

(i = 07)

Визначаються ознаки S, Z, P.

CY = AC = 0.

Операція порозрядного логічного додавання вмісту регістра А і вмісту регістра R. Результат — в регістрі А

CMP R

(A) – (R)

Визначаються ознаки S, Z, AC, P, CY

Порівняння вмісту регістрів A і R.

Якщо (A) = (R), то (Z) = 1.

Якщо (A) < (R), то (CY) = 1 і

(Z) = 0

ANA M

(Ai)  (M(HL)i)  Ai (i = 07)

Визначаються ознаки S, Z, P.

CY = 0; AC = A3.

Операція порозрядного логічного множення вмісту регістра А і вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А

XRA M

(Ai)  (M(HL)i)  Ai (i = 07)

Визначаються ознаки S, Z, P.

CY = AC = 0.

Операція порозрядного логічного додавання за mod 2 вмісту регістра А і вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А

ORA M

(Ai) V (M(HL)i)  Ai (i = 07)

Визначаються ознаки S, Z, P.

CY = AC = 0.

Операція порозрядного логічного додавання вмісту регістра А і вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А

CMP M

(A) – (M(HL))

Визначаються ознаки S, Z, AC, P, CY

Порівняння вмісту регістра A і вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L.

Якщо (A) = (M(HL)),

то (Z) = 1.

Якщо (A) < (M(HL)),

то (CY) = 1 і (Z) = 0

ANI #

(Ai)  #i  Ai

(i = 07)

Визначаються ознаки S, Z, P.

CY = 0; AC = A3.

Операція порозрядного логічного множення вмісту регістра А і другого байту команди. Результат — в регістрі А

XRI #

(Ai)  #i  Ai

(i = 07)

Визначаються ознаки S, Z, P.

CY = AC = 0.

Операція порозрядного логічного додавання за mod 2 вмісту регістра А і другого байту команди. Результат — в регістрі А

ORI #

(Ai) V #i  Ai

(i = 07)

Визначаються ознаки S, Z, P.

CY = AC = 0.

Операція порозрядного логічного додавання вмісту регістра А і другого байту команди.

Результат — в регістрі А

CPI #

(A) – #

Визначаються ознаки S, Z, AC, P, CY

Порівняння вмісту регістра A і другого байту команди.

Якщо (A) = (M(HL)),

то (Z) = 1.

Якщо (A) < (M(HL)),

то (CY) = 1 і (Z) = 0

RLC

Зсув вліво

(A7)  CY,

AC = 0

Циклічний зсув вліво на один розряд. Значення 7–го розряду копіюється в тригер ознаки СY

RRC

Зсув вправо

(A0)  CY,

AC = 0

Циклічний зсув вправо на один розряд. Значення 0–го розряду копіюється в тригер ознаки СY

RAL

Зсув вліво через тригер ознаки СY

(A7)  CY,

AC = 0

Циклічний зсув вліво на один розряд. В кільце зсуву включений тригер ознаки СY

RAR

Зсув вправо через тригер ознаки СY

(A0)  CY,

AC = 0

Циклічний зсув вправо на один розряд. В кільце зсуву включений тригер ознаки СY

CMA

(A)  A

Не змінюються

Інвертування розрядів регістра А

CMC

(ТгСY) Тг СY

СY

Інвертування ознаки СY

STC

1 Тг СY

СY = 1

Встановлення в “1” ознаки СY

Група команд передачі керування

PCHL

(HL)  PС

Не змінюються

Безумовна передача керування за вказаною в регістрах HL адресою

JMP **

**  PС

Не змінюються

Безумовна передача керування за вказаною в команді адресою

J(умова) **

Якщо умова виконується,

то **  PС,

інакше PC+1  PС

Не змінюються

Передача керування при виконанні вказаної в команді умови. Якщо умова не виконується — перехід до наступної за програмою команди

CALL **

(PC)h M(SP – 1)

(PC)l M(SP – 2)

SP – 2SP

**  PC

Не змінюються

Передача керування (звертання) до підпрограми за адресою, що вказана в команді, і зберігання адреси повернення з підпрограми в стеку

С(умова) **

Якщо умова виконується,

то див. попередню команду, інакше

PC+1  PС

Не змінюються

Умовна передача керування (звертання) до підпрограми за адресою, що вказана в команді, і зберігання адреси повернення з підпрограми в стеку

RET

(M(SP))  PC l

(M(SP+1)) PC h

(SP) + 2  SP

Не змінюються

Повернення з підпрограми до місця звертання за адресою, що видобувається зі стеку

R(умова)

Якщо умова виконується,

то див. попередню команду, інакше

PC+1  PС

Не змінюються

Умовне повернення з підпрограми до місця звертання за адресою, що видобувається зі стеку

RST n

(PC)h M(SP – 1)

(PC)l M(SP – 2)

SP – 2SP

n8  PC

Не змінюються

Звертання до підпрограми обробки переривання за адресою, що відповідає номеру переривання n

Група спеціальних команд

EI

1  Тгдозв пере-вань

Не змінюються

Дозвіл переривань

DI

0  Тгдозв пере-вань

Не змінюються

Заборона переривань

HTL

Зупинка

Не змінюються

Зупинка роботи МП до появи сигналу “запит на переривання”

NOP

Не змінюються

Пуста операція