- •Архітектура та принципи функціювання мікропроцесора. Вивчення та застосування команд пересилання даних. Методичні вказівки та інструкція
- •1. Структура та функцiонування мiкропроцесора
- •Призначення бітів слова стану процесора
- •2. Вивчення та застосування команд пересилання даних
- •Символи та скорочення
- •Методичні вказівки та інструкція
Призначення бітів слова стану процесора
Розряд |
Призначення сигналу |
1 |
2 |
D0 |
Пiдтвердження переривання: використовується для стробування команди RST в ЦП від пристрою, що запитує переривання. |
D1 |
Запис-вивiд у порт: рiвень лог. 0 свiдчить про те, що протягом даного циклу буде вiдбуватися запис у пам'ять чи на ПУВ; рiвень лог. 1 свiдчить про наявнiсть читання з пам'ятi чи увiд з ПУВ. |
D2 |
Свiдчить про те, що у даному циклi на адреснiй шинi втановлено вмiст вказувача стеку. |
-
1
2
D3
Пiдтвердження зупинки: свiдчить про те, що ЦП знаходиться в станi зупинки.
D4
Свiдчить про те, що на адреснiй шинi знаходится номер (адреса) ПУВ та здiйснюеться вивiд на цей пристрiй.
D5
Свiдчить про те, що у даному циклi ЦП приймає перший байт команди.
D6
Свiдчить про те, що у даному циклi на адреснiй шинi встановлений номер(адреса) ПУВ та здiйснюеться вивiд на цей пристрiй.
D7
Свiдчить про те, що у даному циклi вiдбувається читання з пам'ятi у ЦП.
2. Вивчення та застосування команд пересилання даних
Таблиця 2
Символи та скорочення
Скорочення |
Розшифрування |
1 |
2 |
А - регістр |
Акумулятор |
адр. |
16-бітна адреса |
Байт |
8-бітне слово даних |
2 байта |
16-бітне слово даних |
Байт 2 |
Другий байт команди |
Байт 3 |
Третій байт команди |
Порт |
8-бітна адреса пристрою вводу/виводу |
r, r1, r2 |
Один з регістрів А, В, С, D, E, H, L |
DDD, SSS |
Набор біт, що означає один з регістрів А, В, С, D, E, H, L (DDD - регістр призначення, SSS - регістр джерела) DDD (SSS) Регістр 111 A 000 B 001 C 010 D 011 E 100 H 101 L |
1 |
2 |
rp |
Одна з регістрових пар: В - пара В і С (В - старший регістр, С - молодший регістр); D - пара D і Е (D - старший регістр, Е - молодший регістр); Н - пара H і L (H - старший регістр, L - молодший регістр) Набір бітів, що визначає пару регістрів: RP Пара регістрів: 00 В-С 01 D-Е 10 H-L 11 SP |
rh |
Перший (старший) регістр вказівної пари |
rl |
Другий (молодший) регістр вказівної пари |
РС |
16-бітний регістр програмного лічильника (позначення РСН і РСL використовується для вказівки старших і молодших 8 бітів відповідно) |
SP |
16-бітний регістр вказівника СТЕКА (позначення SPH і SРL використовується для вказівки старших і молодших 8 бітів відповідно) |
rm |
Біт m регістра r (біти нумеруються від 7 до 0 зліва направо) |
Z |
Прапорець (мітка ) нуля |
S |
Прапорець (мітка ) знака |
P |
Прапорець (мітка ) парності |
CY |
Прапорець (мітка ) переносу |
AC |
Прапорець (мітка ) допоміжного переносу |
( ) |
В дужках заключається вміст комірки пам'яті чи регістра |
|
"Пересилається в" |
|
Логічне "І" |
|
"Виключаюче АБО" |
|
Логічне "АБО" |
+ |
Додавання |
- |
Віднімання з доповненням до 2 |
|
Перемноження |
|
"Обмінюється з" |
|
Доповнення до 1, тобто інверсія |
n |
Номер рестарту від 0 до 7 |
NNN |
Двійкове представлення коду рестарту від 000 до 111 (від 1 до 7) |
КОМАНДИ ПЕРЕСИЛАННЯ
Команди цієї групи виконують пересилання даних в/з регістр(у) і комірки пам'яті і не змінюють стан прапорців.
MOV r1, r2 (ПЕРЕСИЛАННЯ ДАНИХ З РЕГІСТРА В РЕГІСТР)
(r1) (r2)
Вміст регістра r2 пересилається в регістр r1
|
|
|
|
|
0 |
1 |
D |
D |
D |
S |
S |
S |
MOV A,A |
7F |
|
MOV B,A |
47 |
MOV A,B |
78 |
|
MOV B,B |
40 |
MOV A,C |
79 |
|
MOV B,C |
41 |
MOV A,D |
7A |
|
MOV B,D |
42 |
MOV A,E |
7B |
|
MOV B,E |
43 |
MOV A,H |
7C |
|
MOV B,H |
44 |
MOV A,L |
7D |
|
MOV B,L |
45 |
MOV C,A |
4F |
|
MOV D,A |
57 |
MOV C,B |
48 |
|
MOV D,B |
50 |
MOV C,C |
49 |
|
MOV D,C |
51 |
MOV C,D |
4A |
|
MOV D,D |
52 |
MOV C,E |
4B |
|
MOV D,E |
53 |
MOV C,H |
4C |
|
MOV D,H |
54 |
MOV C,L |
4D |
|
MOV D,L |
55 |
MOV E,A |
5F |
|
MOV H,A |
67 |
MOV E,B |
58 |
|
MOV H,B |
60 |
MOV E,C |
59 |
|
MOV H,C |
61 |
MOV E,D |
5A |
|
MOV H,D |
62 |
MOV E,E |
5B |
|
MOV H,E |
63 |
MOV E,H |
5C |
|
MOV H,H |
64 |
MOV E,L |
5D |
|
MOV H,L |
65 |
-
MOV L,A
6F
MOV L,B
68
MOV L,C
69
MOV L,D
6A
MOV L,E
6B
MOV L,H
6C
MOV L,L
6D
Цикли: 1
Стан: 4
Адресація: регістрова
Прапорці: не встановлюються
MOV r, M (ПЕРЕСИЛАННЯ ДАНИХ З ПАМ'ЯТІ)
(r) ((H) (L))
Вміст комірки пам'яті, адреса якої зберігається в регістрах H і L, пересилається в регістр r .
|
|
|
|
|
0 |
1 |
D |
D |
D |
1 |
1 |
0 |
-
MOV A,M
7E
MOV B,M
46
MOV C,M
4E
MOV D,M
56
MOV E,M
5E
MOV H,M
66
MOV L,M
6E
Цикли: 2
Стан: 7
Адресація: посередня регістрова
Прапорці: не встановлюються
MOV M, r (ПЕРЕСИЛАННЯ ДАНИХ В ПАМ'ЯТЬ)
((H) (L)) (r)
Вміст регістра r пересилається в комірку пам'яті, адреса якої міститься в регістрах H і L.
|
|
|
|
|
0 |
1 |
1 |
1 |
0 |
S |
S |
S |
-
MOV M,A
77
MOV M,B
70
MOV M,C
71
MOV M,D
72
MOV M,E
73
MOV M,H
74
MOV M,L
75
Цикли: 2
Стан: 7
Адресація: посередня регістрова
Прапорці: не встановлюються
MVІ r, байт (БЕЗПОСЕРЕДНЄ ПЕРЕСИЛАННЯ)
(r) ( байт 2)
Вміст другого байта команди пересилається в регістр n.
|
|
|
|
|
0 |
1 |
D |
D |
D |
1 |
1 |
0 |
|
|
|
|
|
Дані |
|||||||
MVІ A, байт даних 3E, байт даних
MVІ B, байт даних 06, байт даних
MVІ C, байт даних 0Е, байт даних
MVІ D, байт даних 16, байт даних
MVІ E, байт даних 1Е, байт даних
MVІ H байт даних 26, байт даних
MVІ L, байт даних 2E, байт даних
Цикли: 2
Стан: 7
Адресація: безпосередня
Прапорці: не встановлюються
MVІ М, байт (БЕЗПОСЕРЕДНЄ ПЕРЕСИЛАННЯ В ПАМ'ЯТЬ)
((H) (L)) ( байт 2)
Вміст другого байта команди пересилається в комірку пам'яті, адреса якої вказана в регістрах H i L.
|
|
|
|
|
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
|
|
|
|
|
Дані |
|||||||
MVІ M, байт даних 36, байт даних
Цикли: 3
Стан: 10
Адресація: безпосередня/посередня регістрова
Прапорці: не встановлюються
LXІ rp, 2 байтa (БЕЗПОСЕРЕДНЄ ЗАВАНТАЖЕННЯ ПАРИ РЕГІСТРІВ)
(rh) ( байт 3)
(r1) ( байт 2)
Третій байт команди пересилається в старший регістр (rh) пари регістрів, другий - в молодший регістр (r1) пари регістрів.
|
|
|
|
|
0 |
1 |
D |
D |
D |
1 |
1 |
0 |
|
|
|
|
|
Молодший байт даних |
|||||||
|
|
|
|
|
Старший байт даних |
|||||||
LXІ B, 2 байти 01, молодший байт, старший байт
LXІ D, 2 байт 11, молодший байт, старший байт
LXІ H, 2 байт 21, молодший байт, старший байт
LXІ SP, 2 байт 31, молодший байт, старший байт
Цикли: 3
Стан: 10
Адресація: безпосередня
Прапорці: не встановлюються
LDA [адр.] (ПРЯМЕ ЗАВАНТАЖЕННЯ АКУМУЛЯТОРА)
(А) (( байт 3) (байт 2))
Вміст комірки пам'ті, адреса якої вказана в другому та третьому байтах команди, завантажується в акумулятор.
|
|
|
|
|
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
|
|
|
|
|
Молодший байт адреси |
|||||||
|
|
|
|
|
Старший байт адреси |
|||||||
LDA [адреса] 3А, молодший байт адреси, старший байт адреси
Цикли: 4
Стан: 13
Адресація: пряма
Прапорці: не встановлюються
STA [адр.] (ПРЯМЕ ЗАПИСУВАННЯ ВМІСТУ АКУМУЛЯТОРА В ПАМ'ЯТЬ)
(( байт 3) (байт 2)) (А)
Вміст акумулятора пересилається в комірку пам'яті, адреса якої вказана в другому та третьому байтах команди.
|
|
|
|
|
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
|
|
|
|
|
Молодший байт адреси |
|||||||
|
|
|
|
|
Старший байт адреси |
|||||||
STA [адреса] 32, молодший байт адреси, старший байт адреси
Цикли: 4
Стан: 13
Адресація: пряма
Прапорці: не встановлюються
LHLD [адр.] (ПРЯМЕ ЗАВАНТАЖЕННЯ H і L)
(L) (( байт 3) (байт 2))
(H) (( байт 3) (байт 2) + 1)
Вміст комірки пам'яті, адреса якої вказана в другому та третьому байтах команди, пересилається в регістр L. Вміст комірки пам'яті з наступною ((адр.) + 1) пересилається в регістр H.
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
|
|
|
|
|
Молодший байт адреси |
|||||||
|
|
|
|
|
Старший байт адреси |
|||||||
LHLD [адр.] 2А, молодший байт адреси, старший байт адреси
Цикли: 5
Стан: 16
Адресація: пряма
Прапорці: не встановлюються
SHLD [адр.] (ПРЯМЕ ЗАПИСУВАННЯ ВМІСТУ H і L РЕГІСТРІВ У ПАМ'ЯТЬ)
(( байт 3) (байт 2)) (L)
(( байт 3) (байт 2) + 1) (H)
Вміст регістра L пересилається в комірку пам'яті, адреса якої визначена у другому та третьому байтах команди. Вміст H регістру пересилається в наступну комірку пам'яті.
|
|
|
|
|
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
|
|
|
|
|
Молодший байт адреси |
|||||||
|
|
|
|
|
Старший байт адреси |
|||||||
SHLD [адр.] 22, молодший байт адреси, старший байт адреси
Цикли: 5
Стан: 16
Адресація: пряма
Прапорці: не встановлюються
LDAX rp (НЕПРЯМЕ ЗАВАНТАЖЕННЯ АКУМУЛЯТОРА)
(A) (( rp))
Вміст комірки пам'ті, адреса якої вказана в парі регістрів rp, пересилається в А-регістр.
Примітка. Можуть бути вказані тільки пари регістрів rp=B (регістри B і C) і rp=D (регістри D і E)
|
|
|
|
|
0 |
0 |
R |
P |
1 |
0 |
1 |
0 |
LDAX B 0А
LDAX D 1А
Цикли: 2
Стан: 7
Адресація: непряма регістрова
Прапорці: не встановлюються
STAR rp (НЕПРЯМЕ ЗАПИСУВАННЯ ВМІСТУ АКУМУЛЯТОРА В ПАМ'ЯТЬ)
(( rp)) (A)
Вміст акумулятора пересилається в комірку пам'яті, адреса якої вказана в парі регістрів rp.
Примітка. Можуть бути вказані тільки пари регістрів rp=B (регістри B і C) чи rp=D (регістри D і E)
|
|
|
|
|
0 |
0 |
R |
P |
0 |
0 |
1 |
0 |
STAX B 02
STAX D 12
Цикли: 2
Стан: 7
Адресація: непряма регістрова
Прапорці: не встановлюються
XCHG (ОБМІН ДАНИМИ МІЖ РЕГІСТРАМИ H, L i D, E)
(H) (D)
(L) (E)
Вміст регістрів H i L обмінюється з вмістом регістрів D i E.
|
|
|
|
|
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
XCHG EB
Цикли: 1
Стан: 4
Адресація: регістрова
Прапорці: не встановлюються
Завдання 2.1.
Написати програму пересилання даних з використанням команд пересилання даних з регiстру в регiстр, з регiстру в пам'ять та навпаки, безпосереднього пересилання з пам'ятi та у пам'ять, завантаження акумулятора. Закодувати програму, увести у пам'ять мiкролабу. Прослiдкувати результати виконання команд у кроковому режимi.
Записати програму у звiт, в лiстингу програми привести кiлькiсть циклiв, що вимагають команди та вмiст байту стану, що має мiсце пiсля кожного циклу команд програми.
3. ЗМІСТ РОБОТИ
1. Ознайомитись з принципами роботи МП КР580ИК80, системою виконання команд за циклами та тактами, формуванням слова стану ЦП у мiкропроцесорнiй системi.
2. Ознайомитись з командами персилання даних мiкролаба, виконати завдання вiдповiдно до п.2, скласти звiт з роботи.
ЛIТЕРАТУРА
1. Микропроцессоры. / Под ред. Л.Н. Преснухина. - М:. Высш.шк., 1986.-351с.
2. Микропроцессорная лаборатория "Микролаб КР50ИК80". Техническое описание и инструкция по эксплуатации. М:. Машприборинторг. 1986.
НАВЧАЛЬНЕ ВИДАННЯ
АРХІТЕКТУРА ТА ПРИНЦИПИ ФУНКЦІЮВАННЯ МІКРОПРОЦЕСОРА. ВИВЧЕННЯ ТА ЗАСТОСУВАННЯ КОМАНД ПЕРЕСИЛАННЯ ДАНИХ.
