Основы микропроцессорной техники
.pdf
311
+5B
‒5B
+12B
+5B
|
КР580ГФ24 |
||
|
G |
OSC |
|
ZQ |
X1 |
C1 |
|
R |
|||
X2 |
C2 |
||
|
|||
|
RESIN |
C2 |
|
|
ТТЛ |
||
|
|
||
SB C |
|
SR |
|
|
GND |
RDY |
|
+12B |
|
SYN |
|
|
RDYIN |
STB |
|
КР580ВМ80А
CPU
|
А0...А7 |
GND |
|
|
А8...А15 |
|
HLDA |
C1 |
D0...D7 |
C2 |
+5B |
SR |
|
RDY |
|
SYN |
DBIN |
|
WR |
|
INTE |
HLD |
WI |
INT |
|
КР580ВА86 |
|
F |
А |
D |
0 |
OЕ |
7А... |
КР580ВА86 |
8А |
F |
|
|
|
D |
... |
OЕ |
15А |
КР580ВK28
HLDA SC
D0...D7
D0...D7
D7...D0
GND |
INTA |
BUSEN |
MEMR |
STB |
MEMW |
DBIN |
I/OR |
WR |
I/OW |
адресаШинаШинаадреса данных Шина управленияШинаШинауправления
|
|
|
|
|
PIC |
|
|
|
PCDMA |
|
|
|
|
|
|
|
|
|
|
|
HLD |
HLDA |
|
|
|
|
|
|
|
INTA |
|
|
Подтверждения захвата наШи адреса |
|
|
Шина данных Запросы захвата |
||
Запросы рерыванийп |
|
|
|
Шина данных |
|
КР580ВТ57 |
|
|||||
|
|
|
|
|
|
|||||||
|
|
|
|
IRQ0 |
|
|
|
|
А0...А7 |
D0...D7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
. |
INT |
|
|
|
|
|
|
|
|
|
|
. |
. |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
DACK0 |
DRQ0 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
. |
. |
D0...D7 |
|
|
. |
. |
. |
. |
|
|
|
|
|
|
IRQ7 |
|
|
|
. |
. |
. |
. |
|
|
|
|
|
|
|
|
. |
. |
. |
. |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
DACK3 |
DRQ3 |
|
||
|
|
|
|
КР580ВН59 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||
Рис. 77. Микропроцессорный модуль системы на базе МП КР580ВМ80А
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.Е.Г. Павловский, В.А. Жвариков, А.А. Кузьмин. Основы организации ЭВМ и микропроцессоров: Учебное пособие и методические указания к лабораторному практикуму. – СПб.: СанктПетербургский государственный политехнический ун-т, 2011. – 118 с., ил.
2.А.А. Мельников, А.А. Мельников (ст.), А.А. Мельников (мл.). Микропроцессоры, микроконтроллеры и однокристальные микропрограммируемые устройства: Хрестоматия устройств с микропрограммным управлением. Часть II. Под ред. А.А. Мельникова. – М.: 2008. – 235 с.
3.В.П. Мокрецов. Микропроцессоры и МПС. Часть 1. Архитектура микропроцессора К580ВМ80. Организация МП-систем. Учебное электронное текстовое издание. – Екатеринбург: Изд-во УГТУ-УПИ,
2007. – 143 с.
4.П.Б. Могнонов. Организация микропроцессорных систем: Учебное пособие. – Улан-Удэ: Изд-во ВСГТУ, 2003. – 355 с.
5.С.Н. Ливенцов, А.Д. Вильнин, А.Г. Горюнов. Основы микропроцессорной техники: Учебное пособие. – Томск: Изд-во Томского политехнического ун-та, 2007. – 118 с.
6.Ю.В. Новиков, П.К. Скоробогатов. Основы микропроцессорной техники: Учебное пособие. – М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2009. –
357с., ил.
132
ПРИЛОЖЕНИЕ 1
СИСТЕМА КОМАНД МИКРОПРОЦЕССОРА КР580ВМ80А
Условные обозначения:
А – аккумулятор, В, C, D, E, H, L – регистры общего назначения, обозначаемые в зависимости от выполняемой функции RS (регистр источник, S — SOURCE) или RD (регистр приемник, D –
DESTINATION).
М – ячейка памяти (от MEMORY). В нотации команд МП КР580ВМ80А ячейка памяти М трактуется как своеобразный регистр, обращение к которому производится только с использованием косвенной адресации. Адрес М размещается в регистровой паре HL.
BC, DE, HL – регистровые пары (RP), обозначаемые в командах по именам старших регистров пары: В – имя регистровой пары ВС, D – имя регистровой пары DE, Н – имя регистровой пары
HL.
Кодирование регистров и регистровых пар представлено в табл. П1.
|
|
|
Таблица П1 |
|
Имя регистра |
Код регистра |
Имя регистровой |
Код RP |
|
пары RP |
||||
|
|
|
||
B |
000 |
B-пара |
000 |
|
C |
001 |
|||
|
|
|||
D |
010 |
D-пара |
010 |
|
E |
011 |
|||
|
|
|||
H |
100 |
H-пара |
100 |
|
L |
101 |
|||
|
|
|||
M |
110 |
PSW |
110 |
|
A |
111 |
SP |
110 |
ADDR – 16-битный адрес памяти; PORT – 8-битный адрес периферийного устройства;
data8, data16 – 8-битные, 16-битные данные; В2, В3 – второй, третий байты команды;
Z/NZ, C/NC, PE/PO, P/M (знак S), AC – признаки результата; ( ) — содержимое ячейки памяти или регистра, символиче-
ское имя которых заключено в скобки; [ ] — адрес ячейки памяти.
133
Список команд микропроцессора КР580ВМ80А приведен в табл. П2, П3. В табл. П2 представлены команды, не воздействующие на флаги процессора. Это – команды пересылок, команды загрузки в стек и извлечения из стека (за исключением команды РОР PSW, которая изменяет флаги), команды передачи управления и команды управления микропроцессором. При выполнении команд этой группы признаки результата не изменяют своего значения. В табл. П3 представлены команды, при выполнении которых признаки результата (флаги) модифицируются в соответствии со значением результата. Таблицы П2 и П3 отличаются друг от друга наличием (табл. П3) или отсутствием колонки «признаки результата»
(табл. П2).
Машинные коды команд МП КР580ВМ80А приведены в табл. П4. Пересечение соответствующих строки и столбца дают машинный код любой команды микропроцессора.
134
|
|
|
|
|
|
|
|
|
|
|
|
Таблица П2 |
|
Название |
Мнемоника |
Код |
Параметры |
Описание |
|||||||
|
|
команды |
||||||||||
|
команды |
команды |
операции |
|
команды |
|||||||
|
б |
|
ц |
т |
||||||||
|
|
|
|
|
|
|
|
|
||||
|
1 |
2 |
3 |
|
4 |
|
|
|
5 |
|
|
|
|
|
Команды пересылки данных |
|
|
|
|
|
|||||
|
|
MOV RD,RS |
1DS |
1 |
|
1 |
|
5 |
( ) |
→ ( |
) |
|
|
Пересылки 8-битных |
|
|
|
|
|
|
|
|
|
|
|
|
MOV M,RS |
16S |
1 |
|
2 |
|
7 |
( ) |
→ ( ) |
|||
|
|
|
|
|||||||||
|
данных |
|
|
|
|
|
|
|
|
|
|
|
|
MOV RD,M |
1D6 |
1 |
|
2 |
|
7 |
( ) → |
( |
) |
||
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Загрузка регистра |
MVI RD,data8 |
0D6 B2 |
2 |
|
2 |
|
7 |
2 → |
( |
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(непосредственная) |
MVI M,data8 |
066 B2 |
2 |
|
3 |
|
10 |
2 → ( ) |
|||
|
|
LXI B,data16 |
001 B2 B3 |
3 |
|
3 |
|
10 |
2 → ( ) |
|||
|
|
|
|
3 → ( ) |
||||||||
|
|
|
|
|
|
|
|
|
||||
|
Загрузка пары регистров |
LXI D,data16 |
021 B2 B3 |
3 |
|
3 |
|
10 |
2 → ( ) |
|||
|
|
|
3 → ( ) |
|||||||||
|
(непосредственная) |
|
|
|
|
|
|
|
||||
|
LXI H,data16 |
041 B2 B3 |
3 |
|
3 |
|
10 |
2 → ( ) |
||||
|
|
|
|
|||||||||
|
|
|
|
3 → ( ) |
||||||||
|
|
|
|
|
|
|
|
|
||||
|
|
LXI SP,data16 |
061 B2 B3 |
3 |
|
3 |
|
10 |
3 2 → ( ) |
|||
|
Команды пересылок данных в аккумулятор и из аккумулятора |
|
|
|
||||||||
|
Загрузка А (прямая) |
LDA ADDR |
072 B2 B3 |
3 |
|
4 |
|
13 |
[( 2)( 3)] → ( ) |
|||
|
Загрузка А (косвенная) |
LDAX B |
012 |
1 |
|
2 |
|
7 |
[( )( )] → ( ) |
|||
|
|
LDAX D |
032 |
1 |
|
2 |
|
7 |
[( )( )] → ( ) |
|||
|
Запоминание А (прямое) |
STA ADDR |
062 B2 B3 |
3 |
|
4 |
|
13 |
( ) → [( 2)( 3)] |
|||
|
Запоминание А |
STAX B |
002 |
1 |
|
2 |
|
7 |
( ) → [( )( )] |
|||
135 |
(косвенное) |
STAX D |
022 |
1 |
|
2 |
|
7 |
( ) → [( )( )] |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица П2 (продолжение) |
|
1 |
2 |
3 |
|
4 |
|
|
5 |
|
Ввод |
IN PORT |
333 B2 |
2 |
3 |
10 |
|
[ ] → ( ) |
|
Вывод |
OUT PORT |
323 B2 |
2 |
3 |
10 |
|
( ) → [ ] |
|
Команды обмена, загрузки и запоминания содержимого регистровой пары HL |
|||||||
|
|
XCHG |
353 |
1 |
1 |
4 |
|
( ) ↔ ( ) |
|
|
|
( ) ↔ ( ) |
|||||
|
Обмен |
|
|
|
|
|
|
|
|
XTHL |
343 |
1 |
5 |
18 |
|
( ) ↔ ([ ]) |
|
|
|
|
||||||
|
|
|
( ) ↔ ([ + 1]) |
|||||
|
|
|
|
|
|
|
|
|
|
Загрузка (прямая) |
LHLD ADDR |
052 B2 B3 |
3 |
5 |
16 |
|
[( 3)( 2)] → ( ) |
|
|
[( 3)( 2 + 1)] → ( ) |
||||||
|
|
|
|
|
|
|
|
|
|
Запоминание (прямое) |
SHLD ADDR |
042 B2 B3 |
3 |
5 |
16 |
|
( ) → [( 3)( 2)] |
|
|
( ) → [( 3)( 2 + 1)] |
||||||
|
|
|
|
|
|
|
|
|
|
Загрузка указателя стека |
SPHL |
371 |
1 |
1 |
5 |
|
( )( ) → ( ) |
|
|
|
|
|
|
|
|
|
|
Загрузка счётчика команд |
PCHL |
351 |
1 |
1 |
5 |
|
( )( ) → ( ) |
|
|
|
|
|
|
|
|
|
|
|
Команды загрузки в стек и извлечения из стека |
|
|||||
|
Загрузка в стек |
|
|
|
|
|
|
( ) → [( − 1)] |
|
|
PUSH B |
305 |
1 |
3 |
11 |
|
( ) → [( − 2)] |
|
|
|
|
|
|
|
|
( ) = ( − 2) |
|
|
|
|
|
|
|
|
( ) → [( − 1)] |
|
|
PUSH D |
325 |
1 |
3 |
11 |
|
( ) → [( − 2)] |
|
|
|
|
|
|
|
|
( ) = ( − 2) |
|
|
|
|
|
|
|
|
( ) → [( − 1)] |
136 |
|
PUSH H |
345 |
1 |
3 |
11 |
|
( ) → [( − 2)] |
|
|
|
|
|
|
|
( ) = ( − 2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица П2 (продолжение) |
|
1 |
2 |
3 |
|
4 |
|
|
5 |
|
|
|
|
|
|
|
|
( ) → [( − 1)] |
|
Загрузка в стек |
PUSH PSW |
365 |
1 |
3 |
11 |
|
( ) → [( − 2)] |
|
|
|
|
|
|
|
|
( ) = ( − 2) |
|
|
|
|
|
|
|
|
[( )] → ( ) |
|
|
POP B |
301 |
1 |
3 |
10 |
|
[( + 1)] → ( ) |
|
|
|
|
|
|
|
|
( ) = ( + 2) |
|
|
|
|
|
|
|
|
[( )] → ( ) |
|
|
POP D |
321 |
1 |
3 |
10 |
|
[( + 1)] → ( ) |
|
Извлечение из стека |
|
|
|
|
|
|
( ) = ( + 2) |
|
|
|
|
|
|
|
[( )] → ( ) |
|
|
|
|
|
|
|
|
|
|
|
|
POP H |
341 |
1 |
3 |
10 |
|
[( + 1)] → ( ) |
|
|
|
|
|
|
|
|
( ) = ( + 2) |
|
|
|
|
|
|
|
|
[( )] → ( ) |
|
|
POP PSW |
361 |
1 |
3 |
10 |
|
[( + 1)] → ( ) |
|
|
|
|
|
|
|
|
( ) = ( + 2) |
|
|
Команды безусловной передачи управления |
|
|||||
|
Безусловный переход |
JMP ADDR |
303 B2 B3 |
3 |
3 |
10 |
|
3 2 → ( ) |
|
|
|
|
|
|
|
|
|
|
Безусловный вызов |
|
|
|
|
|
|
( ) → [( − 1)( − 2)] |
|
CALL ADDR |
315 B2 B3 |
3 |
5 |
17 |
|
( ) = ( − 2) |
|
|
подпрограммы |
|
||||||
|
|
|
|
|
|
|
3 2 → ( ) |
|
|
|
|
|
|
|
|
|
|
|
Безусловный возврат из |
RET |
311 |
1 |
3 |
10 |
|
[( )( + 1)] → ( ) |
1 |
подпрограммы |
|
( ) = ( + 2) |
|||||
|
|
|
|
|
|
|||
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138
|
|
|
|
|
|
Таблица П2 (продолжение) |
|
1 |
2 |
3 |
|
4 |
|
5 |
|
|
|
|
|
|
|
|
|
Загрузка счётчика команд |
|
|
|
|
|
( )( ) → ( ) |
|
(множественное |
PCHL |
351 |
1 |
1 |
5 |
|
|
ветвление) |
|
|
|
|
|
|
|
Вызов прерывающей |
RST N |
3N7 |
1 |
3 |
11 |
( ) → [( − 1)( − 2)] |
|
программы |
( ) = ( − 2); ( ) = 000 0 0 |
||||||
|
|
|
|
|
|||
|
Команды условного перехода |
|
|||||
Переход по нулевому |
|
|
|
|
|
|
|
значению флага Z |
JNZ ADDR |
302 B2 B3 |
3 |
3 |
10 |
|
|
(ненулевому результату) |
|
|
|
|
|
|
|
Переход по единичному |
|
|
|
|
|
|
|
значению флага Z |
JZ ADDR |
312 B2 B3 |
3 |
3 |
10 |
Переход по условию, заданному в |
|
(нулевому результату) |
|
|
|
|
|
команде. |
|
Переход по нулевому |
|
|
|
|
|
Если условие выполняется, то |
|
значению флага C (при |
JNC ADDR |
322 B2 B3 |
3 |
3 |
10 |
осуществляется переход к коман- |
|
отсутствии переноса) |
|
|
|
|
|
де, размещенной по адресу B2 B3: |
|
Переход по единичному |
|
|
|
|
|
3 2 → ( ). |
|
значению флага C (при |
JC ADDR |
332 B2 B3 |
3 |
3 |
10 |
Если условие не выполняется, то |
|
наличии переноса) |
|
|
|
|
|
осуществляется переход к следу- |
|
Переход по нулевому |
|
|
|
|
|
ющей по порядку команде: |
|
значению флага P (при |
JPO ADDR |
342 B2 B3 |
3 |
3 |
10 |
( ) = ( ) + 3. |
|
отсутствии четности) |
|
|
|
|
|
|
|
Переход по единичному |
|
|
|
|
|
|
|
значению флага P (при |
JPE ADDR |
352 B2 B3 |
3 |
3 |
10 |
|
|
наличии четности) |
|
|
|
|
|
|
|
913
|
|
|
|
|
|
Таблица П2 (продолжение) |
|
1 |
2 |
3 |
|
4 |
|
5 |
|
|
|
|
|
|
|
|
|
Переход по нулевому |
|
|
|
|
|
|
|
значению флага S |
JP ADDR |
362 B2 B3 |
3 |
3 |
10 |
|
|
(положительное |
|
||||||
|
|
|
|
|
|
||
значение) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Переход по единичному |
|
|
|
|
|
|
|
значению флага S |
JM ADDR |
372 B2 B3 |
3 |
3 |
10 |
|
|
(отрицательное значение) |
|
|
|
|
|
|
|
|
Команды условного вызова подпрограмм |
||||||
Вызов подпрограммы при |
CNZ ADDR |
304 B2 B3 |
3 |
3/5 |
11/17 |
|
|
Z = 0 |
|
||||||
|
|
|
|
|
|
||
Вызов подпрограммы при |
CZ ADDR |
314 B2 B3 |
3 |
3/5 |
11/17 |
Вызов подпрограммы при выпол- |
|
Z = 1 |
нении условия, заданного в ко- |
||||||
Вызов подпрограммы при |
CNC ADDR |
324 B2 B3 |
3 |
3/5 |
11/17 |
манде. |
|
C = 0 |
|
|
|
|
|
Если условие выполняется, то |
|
Вызов подпрограммы при |
CC ADDR |
334 B2 B3 |
3 |
3/5 |
11/17 |
осуществляется переход к под- |
|
C = 1 |
программе, т.е. к команде, разме- |
||||||
Вызов подпрограммы при |
CPO ADDR |
344 B2 B3 |
3 |
3/5 |
11/17 |
щенной по адресу B2 B3: |
|
P = 0 |
3 2 → ( ). |
||||||
|
|
|
|
|
|||
Вызов подпрограммы при |
CPE ADDR |
354 B2 B3 |
3 |
3/5 |
11/17 |
Если условие не выполняется, то |
|
P = 1 |
осуществляется переход к следу- |
||||||
Вызов подпрограммы при |
CP ADDR |
364 B2 B3 |
3 |
3/5 |
11/17 |
ющей по порядку команде: |
|
S = 0 |
( ) = ( ) + 3. |
||||||
|
|
|
|
|
|||
Вызов подпрограммы при |
CM ADDR |
374 B2 B3 |
3 |
3/5 |
11/17 |
|
|
S = 1 |
|
||||||
|
|
|
|
|
|
||
014
|
|
|
|
|
Таблица П2 (продолжение) |
1 |
2 |
3 |
4 |
|
5 |
|
|
|
|
|
|
|
Команды условного возврата из подпрограмм |
|
|||
Возврат из |
|
|
|
|
|
|
подпрограммы при |
RNZ |
300 |
1 |
1/3 |
5/11 |
|
ненулевом результате |
||||||
|
|
|
|
|
||
(Z = 0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
Возврат из |
|
|
|
|
|
|
подпрограммы при |
RZ |
310 |
1 |
1/3 |
5/11 |
|
нулевом результате |
||||||
|
|
|
|
|
||
(Z = 1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
Возврат из |
|
|
|
|
|
|
подпрограммы при |
RNC |
320 |
1 |
1/3 |
5/11 |
|
отсутствии переноса |
||||||
|
|
|
|
|
||
(C = 0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
Возврат из |
|
|
|
|
|
|
подпрограммы при |
RC |
330 |
1 |
1/3 |
5/11 |
|
наличии переноса (C = 1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
Возврат из |
|
|
|
|
|
|
подпрограммы при |
RPO |
340 |
1 |
1/3 |
5/11 |
|
отсутствии четности |
||||||
|
|
|
|
|
||
(P = 0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
Возврат из |
|
|
|
|
|
|
подпрограммы при |
RPE |
350 |
1 |
1/3 |
5/11 |
|
наличии четности (P = 1) |
|
|
|
|
|
|
|
|
|
|
|
|
Возврат из подпрограммы при выполнении условия, заданного в команде. Если условие выполняется, то осуществляется переход к команде, размещенной по адресу возврата из стека:
[( )( ) + 1] → ( ), ( ) = ( ) + 2.
Если условие не выполняется, то осуществляется переход к следующей по порядку команде:
( ) = ( ) + 3.
