Мнемокод
| Операція
| Ознаки
| Коментар
|
Група команд пересилання
|
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) L (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) L (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) L #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
|
| Не змінюються
| Пуста операція
|
1. Будіщев М.С. Електротехніка, електроніка та мікропроцесорна техніка. – Львів, «Афіша», 2001, 424 с. (на укр. мові).
2. Жаров А. Железо IBM 2001 (ежегодник). – М.: “МикроАрт”, 2001 (на рос. мові).
3. Каган Б.Н. Электронные вычислительные машины. М.: Энергия, начиная с 1979 (на рос. мові).
4. Карандаков Г.В., Кривенко В.І. Конспект лекцій з дисципліни «Електротехніка, електроніка і мікропроцесорна техніка». – Київ, НТУ. 2006. На укр. мові.
5. Микролаб КР580ИК80 907. Тех. Описание и инструкция по эксплуатации. – М.: Машприборинторг. 1989 (на рос. мові).
6. Микропроцессорная лаборатория “Микролаб КР580ИК80”. – М.: Внешторгиздат, 1989 (на рос. мові).
7. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В.Сташин, А.В.Урусов. 1990 (на рос. мові).
8. Рудометов Е., Рудометов В. Архитектура ПК, комплектующие, мультимедиа – СПб: Издательство «Питер», 2000. (Серия «Анатомия ПК») (на рос. мові).
9. Стрыгин В.В., Щарев Л.С. Основы вычислительной, микропроцессорной техники и программирование. – М.: Высш. шк., 1989 (на рос. мові).
ВСТУП.. 3
Тема: структура учбової мікропроцесорної лабораторії, клавіатура керування, індикація. 4
Тема: пам’ять учбової мікропроцесорної лабораторії, дослідження виконання програм в покроковому i автоматичному режимах. 11
Тема: вивчення команд пересилання даних. 24
Тема: вивчення арифметичних команд. 30
Тема: вивчення логічних команд. 41
Тема: вивчення команд переходів. 49
Тема: вивчення команд введення / виведення, керування і рестарту. 54
Тема: вивчення зв’язків мікролабораторії із зовнішнім середовищем. 61
Тема: програмування тимчасових затримок. 73
Тема: програмне керування пристроями введення / виведення. 78
Тема: динамічне керування об’єктами введення / виведення. 82
Тема: імітаційне моделювання передньої панелі вимірювального приладу з вбудованим МП.. 87
Тема: тестування пам’яті мікропроцесорної системи. 92
Система команд 8–розрядного однокристального мікропроцесора К580ИК80А. 104
Література.. 111
[1] ППЗП – ПЗП, що програмується. Користувач може сам ввести в ППЗП інформацію за допомогою спеціального пристрою – програматора, але тільки один раз.
[2] В комп’ютерах частіше використовується ОЗП динамічного типу, в якому для зберігання інформації використовують конденсатор. Заряджений конденсатор відповідає логічній «1», а відсутність заряду – логічному «0». Для поновлення заряду, що з часом втрачається, періодично здійснюється регенерація стану конденсаторів – зчитування і перезапис інформації за тими ж самими адресами кожні 2 мкс.
[3] На відміну від зазначеного, в багатосекційних процесорах пристрій керування МП уявляє собою окрему мікросхему, в якій мікропрограми виконання команд можна змінювати, змінюючи тим самим репертуар команд МП і налаштовувати його на раціональніше виконання саме певного класу задач.
[4] В англомовній літературі використовується абревіатура DMA (Direct Memory Access).
[5] Лабораторна робота створена за матеріалами доповіді студента Пінчука В.А. на 55 науковій конференції професорсько-викладацького складу і студентів НТУ.