
- •Система команд и программирование микропроцессора к 580
- •Введение
- •Форматы команд микропроцессора к 580 ик 80
- •Способы адресации операндов
- •Признаки состояния микропроцессора
- •Размещение признаков в регистре признаков
- •Группа команд пересылки
- •Группа команд арифметических операций
- •Группа команд логических операций
- •Группа команд передачи управления
- •Группа команд управления стеком, вводом-выводом и состояниями микропроцессора
- •Программирование микропроцессора к 580
- •Литература
Программирование микропроцессора к 580
При программировании микропроцессора с использованием эмулятора «Электроника 580» доступным является пространство оперативной памяти, располагающееся, начиная с адреса 8200, представленного в шестнадцатеричной системе счисления (1000001000000000 – в двоичной системе) и простирающегося до конца оперативной памяти – адреса FFFF (1111111111111111 – в двоичной системе).
С адреса 8200 обычно располагаются коды машинных команд программы, далее, в более старших адресах памяти, размещаются обрабатываемые программой данные.
Адреса оперативной памяти |
Коды машинных команд программы и байт данных |
8200 |
Машинный код однобайтной команды №1 |
8201 |
Машинный код однобайтной команды №2 |
8202 |
Машинный код двухбайтной команды №3 |
8204 |
Машинный код трехбайтной команды №4 |
8207 |
Машинный код однобайтной команды №5 |
. . . |
. . . |
8230 |
Машинный код однобайтной команды №К |
8231 |
Значение байта данных №1 |
8232 |
Значение байта данных №2 |
. . . |
. . . |
ХХХ |
Значение байта данных №N |
ХХХ – последний используемый адрес, значение которого определяется объемом кода программы и структуры данных.
Рассмотрим программирование микропроцессора К 580 на примере решения конкретной задачи.
Постановка задачи. Определить минимальное значение элемента последовательности из N байт. Длина последовательности N≥2 располагается в ячейки памяти с адресом 8223. Последовательность данных размещается, начиная с адреса 8224.
Решение задачи.
Назначение регистров (Рг) процессора:
РгВ – используется для хранения минимального значения последовательности.
РгС – используется как счетчик, предварительно содержащий значение длины последовательности N, которое после рассмотрения очередного элемента последовательности уменьшается на 1.
Рг(HL) – используется для хранения адреса, который после рассмотрения очередного элемента последовательности увеличивается на единицу.
РгА – используется для организации обмена данными с оперативной памятью, а так же для хранения значения очередного рассматриваемого элемента последовательности.
Признак переноса (CY) регистра признаков (РгПр) процессора – используется для оценки, является ли рассматриваемое значение (РгА) меньше минимального значения (РгВ)?
Признак нуля (Z) РгПр процессора – используется для оценки, рассмотрена ли вся последовательность данных?
ПРИЛОЖЕНИЕ
ТАБЛИЦА КОДОВ КОМАНД МИКРОПРОЦЕССОРА К 580
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
NOP |
|
|
|
MOV |
MOV |
MOV |
MOV |
ADD |
SUB |
ANA |
ORA |
RNZ |
RNC |
RPO |
RP |
|
|
|
|
|
B,B |
D,B |
H,B |
M,B |
B |
B |
B |
B |
|
|
|
|
1 |
LXI |
LXI |
LXI |
LXI |
MOV |
MOV |
MOV |
MOV |
ADD |
SUB |
ANA |
ORA |
POP |
POP |
POP |
POP |
|
B,D16 |
D,D16 |
H,D16 |
SP,D16 |
B,C |
D,C |
H,C |
M,C |
C |
C |
C |
C |
B |
D |
H |
PSW |
2 |
STAX |
STAX |
SHLD |
STA |
MOV |
MOV |
MOV |
MOV |
ADD |
SUB |
ANA |
ORA |
JNZ |
JNC |
JPO |
JP |
|
B |
D |
A16 |
A16 |
B,D |
D,D |
H,D |
M,D |
D |
D |
D |
D |
A16 |
A16 |
A16 |
A16 |
3 |
INX |
INX |
INX |
INX |
MOV |
MOV |
MOV |
MOV |
ADD |
SUB |
ANA |
ORA |
JMP |
OUT |
XTHL |
DI |
|
B |
D |
H |
SP |
B,E |
D,E |
H,E |
M,E |
E |
E |
E |
E |
A16 |
N |
|
|
4 |
INR |
INR |
INR |
INR |
MOV |
MOV |
MOV |
MOV |
ADD |
SUB |
ANA |
ORA |
CNZ |
CNC |
CPO |
CP |
|
B |
D |
H |
M |
B,H |
D,H |
H,H |
M,H |
H |
H |
H |
H |
A16 |
A16 |
A16 |
A16 |
5 |
DCR |
DCR |
DCR |
DCR |
MOV |
MOV |
MOV |
MOV |
ADD |
SUB |
ANA |
ORA |
PUSH |
PUSH |
PUSH |
PUSH |
|
B |
D |
H |
M |
B,L |
D,L |
H,L |
M,L |
L |
L |
L |
L |
B |
D |
H |
PSW |
6 |
MVI |
MVI |
MVI |
MVI |
MOV |
MOV |
MOV |
HLT |
ADD |
SUB |
ANA |
ORA |
ADI |
SUI |
ANI |
ORI |
|
B,D8 |
D,D8 |
H,D8 |
M,D8 |
B,M |
D,M |
H,M |
|
M |
M |
M |
M |
D8 |
D8 |
D8 |
D8 |
7 |
RLC |
RAL |
DAA |
STC |
MOV |
MOV |
MOV |
MOV |
ADD |
SUB |
ANA |
ORA |
RST |
RST |
RST |
RST |
|
|
|
|
|
B,A |
D,A |
H,A |
M,A |
A |
A |
A |
A |
0 |
2 |
4 |
6 |
8 |
|
|
|
|
MOV |
MOV |
MOV |
MOV |
ADC |
SBB |
XRA |
CMP |
RZ |
RC |
RPE |
RM |
|
|
|
|
|
C,B |
E,B |
L,B |
A,B |
B |
B |
B |
B |
|
|
|
|
9 |
DAD |
DAD |
DAD |
DAD |
MOV |
MOV |
MOV |
MOV |
ADC |
SBB |
XRA |
CMP |
RET |
|
PCHL |
SPHL |
|
B |
D |
H |
SP |
C,C |
E,C |
L,C |
A,C |
C |
C |
C |
C |
|
|
|
|
A |
LDAX |
LDAX |
LHLD |
LDA |
MOV |
MOV |
MOV |
MOV |
ADC |
SBB |
XRA |
CMP |
JZ |
JC |
JPE |
JM |
|
B |
D |
A16 |
A16 |
C,D |
E,D |
L,D |
A,D |
D |
D |
D |
D |
A16 |
A16 |
A16 |
A16 |
B |
DCX |
DCX |
DCX |
SCX |
MOV |
MOV |
MOV |
MOV |
ADC |
SBB |
XRA |
CMP |
|
IN |
XCHG |
EI |
|
B |
D |
H |
SP |
C,E |
E,E |
L,E |
A,E |
E |
E |
E |
E |
|
N |
|
|
C |
INR |
INR |
INR |
INR |
MOV |
MOV |
MOV |
MOV |
ADC |
SBB |
XRA |
CMP |
CZ |
CC |
CPE |
CM |
|
C |
E |
L |
A |
C,H |
E,H |
L,H |
A,H |
H |
H |
H |
H |
A16 |
A16 |
A16 |
A16 |
D |
DCR |
DCR |
DCR |
DCR |
MOV |
MOV |
MOV |
MOV |
ADC |
SBB |
XRA |
CMP |
CALL |
|
|
|
|
C |
E |
L |
A |
C,L |
E,L |
L,L |
A,L |
L |
L |
L |
L |
A16 |
|
|
|
E |
MVI |
MVI |
MVI |
MVI |
MOV |
MOV |
MOV |
MOV |
ADC |
SBB |
XRA |
CMP |
ACI |
SBI |
XRI |
CPI |
|
C,D8 |
E,D8 |
L,D8 |
A,D8 |
C,M |
E,M |
L,M |
A,M |
M |
M |
M |
M |
D8 |
D8 |
D8 |
D8 |
F |
RRC |
RAR |
CMA |
CMC |
MOV |
MOV |
MOV |
MOV |
ADC |
SBB |
XRA |
CMP |
RST |
RST |
RST |
RST |
|
|
|
|
|
C,A |
E,A |
L,A |
A,A |
A |
A |
A |
A |
1 |
3 |
5 |
7 |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |