S - знак. Устанавливается в 1 при отрицательном результате операции;
Z - ноль. Устанавливается в 1 при нулевом результате операции;
AC - вспомогательный перенос. Устанавливается в единицу, если в результате операции есть перенос из разряда D3 в разряд D4;
P - паритет. Устанавливается в 1, если в полученном результате (двоичное число) четное число единиц;
C - перенос. Устанавливается в 1, если в результате операции имеет место перенос из старшего разряда.
Знак «+» в данной графе говорит о том, что команда воздействует на соответствующий признак. Знак «-», как и отсутствие каких-либо знаков, говорит о том, что при выполнении команды соответствующий признак не изменяется. Единица или ноль в этой графе говорят о том, что в результате выполнения команды данный признак устанавливаются соответственно в 1 или в 0.
9. Сноски у отдельных команд показывают, к какому пункту данных пояснений обратиться в случае возникновения затруднений.
Список команд микропроцессора КР580ВМ80А
Операция |
Описание команды |
Байтов |
Циклов |
Тактов |
Двоичный код |
Признаки |
||||
Z |
S |
P |
C |
CA |
||||||
Группа команд пересылки данных |
||||||||||
MOV r1,r2 |
Содержимое регистра r2 передать в регистр r1 5) |
1 |
1 |
5 |
01DD DSSS |
|||||
MOV M,r |
Содержимое регистра r передать в ячейку памяти, адресуемую регистровой парой Н 5) |
1 |
2 |
7 |
0111 0SSS |
|||||
MVI r,data |
Содержимое второго байта команды передать в регистр r 5) |
2 |
2 |
7 |
00DD D110 |
|||||
MVI М,data |
Содержимое второго байта команды передать в ячейку памяти, адресуемую регистровой парой Н |
2 |
3 |
10 |
0011 0110 |
|||||
LXI rp, data 16 |
В регистровую пару rp передать второй (в младший регистр пары) и третий (в старший регистр) байты команды 6) |
3 |
3 |
10 |
00RP 0001 |
|||||
LDA addr |
Содержимое ячейки памяти, адресуемой вторым (младшая тетрада) и третьим (старшая тетрада) байтами команды, передать в аккумулятор |
3 |
4 |
13 |
0011 1010 |
|||||
STA addr |
Содержимое аккумулятора передать в ячейку памяти, адресуемую вторым (младшая тетрада) и третьим (старшая тетрада) байтами |
3 |
4 |
13 |
0011 0010 |
|||||
LHLD addr |
Содержимое ячейки памяти, адресуемой вторым (младшая тетрада) и третьим (старшая тетрада) байтами команды передать в регистр L. Содержимое ячейки памяти по следующему адресу передать в регистр H |
3 |
5 |
16 |
0010 1010 |
|||||
SHLD addr |
Содержимое регистра L передать в ячейку памяти, адресуемую вторым (младшая тетрада) и третьим (старшая тетрада) байтами команды. Содержимое регистра Н передать в ячейку по следующему адресу |
3 |
5 |
16 |
0010 0010 |
|||||
LDAX rp |
Содержимое ячейки памяти, адресуемой регистровой парой rp передать в аккумулятор (используются только регистровые пары B и D) 6) |
1 |
2 |
7 |
00RP 1010 |
|||||
STAX rp |
Содержимое аккумулятора передать в ячейку памяти, адресуемую регистровой парой rp 6) |
1 |
2 |
7 |
00RP 0010 |
|||||
XCHG |
Содержимое регистров H и L взаимно обменять с содержимым регистров D и E |
1 |
1 |
4 |
1110 1011 |
|||||
Группа команд арифметических операций |
||||||||||
ADD r |
Сложить содержимое аккумулятора с содержимым регистра r. Результат поместить в аккумулятор 5) |
1 |
1 |
4 |
1000 0SSS |
+ |
+ |
+ |
+ |
+ |
ADD M |
Сложить содержимое аккумулятора с содержимым ячейки памяти, адресуемой регистровой парой Н. Результат поместить в аккумулятор |
1 |
2 |
7 |
1000 0110 |
+ |
+ |
+ |
+ |
+ |
ADI data |
Сложить содержимое аккумулятора и второго байта команды. Ре-зультат поместить в аккумулятор |
2 |
2 |
7 |
1100 0110 |
+ |
+ |
+ |
+ |
+ |
ADC r |
Сложить содержимое аккумулятора, регистра r и значение признака переноса С. Результат поместить в аккумулятор 5) |
1 |
1 |
4 |
1000 1SSS |
+ |
+ |
+ |
+ |
+ |
ADC M |
Содержимое аккумулятора и приз-нака переноса С сложить с содержимым ячейки памяти, адресуемой регистровой парой Н. Результат поместить в аккумулятор |
1 |
2 |
7 |
1000 1110 |
+ |
+ |
+ |
+ |
+ |
ACI data |
Сложить содержимое аккумулятора, второго байта команды и признака переноса С. Результат поместить в аккумулятор |
2 |
2 |
7 |
1100 1110 |
+ |
+ |
+ |
+ |
+ |
SUB r |
Из содержимого аккумулятора вы-честь содержимое регистра r. Ре-зультат поместить в аккумулятор 5) |
1 |
1 |
4 |
1001 0SSS |
+ |
+ |
+ |
+ |
+ |
SUB M |
Из содержимого аккумулятора вы-честь содержимое ячейки памяти, адресуемой регистровой парой Н. Результат поместить в аккумулятор |
1 |
2 |
7 |
1001 0110 |
+ |
+ |
+ |
+ |
+ |
SUI data |
Из содержимого аккумулятора вы-честь содержимое второго байта команды. Результат поместить в аккумулятор |
2 |
2 |
7 |
1101 0110 |
+ |
+ |
+ |
+ |
+ |
SBB r |
Из содержимого аккумулятора вы-честь содержимое регистра r и значение займа из разряда С. Ре-зультат поместить в аккумулятор 5) |
1 |
1 |
4 |
1001 1SSS |
+ |
+ |
+ |
+ |
+ |
SBB M |
Из содержимого аккумулятора вы-честь содержимое ячейки памяти , адресуемой регистровой парой Н и значение займа из разряда С. Ре-зультат поместить в аккумулятор |
1 |
2 |
7 |
1001 1110 |
+ |
+ |
+ |
+ |
+ |
SBI data |
Из содержимого аккумулятора вы-честь содержимое второго байта команды и значение займа из разряда С. Результат поместить в аккумулятор |
2 |
2 |
7 |
1101 1110 |
+ |
+ |
+ |
+ |
+ |
INR r |
Инкрементировать (увеличить на 1) содержимое регистра r 5) |
1 |
1 |
5 |
00DD D100 |
+ |
+ |
+ |
- |
+ |
INR M |
Инкрементировать (увеличить на 1) содержимое ячейки памяти, адресуемой регистровой парой Н |
1 |
3 |
10 |
0011 0100 |
+ |
+ |
+ |
- |
+ |
DCR r |
Декрементировать (уменьшить на 1) содержимое регистра r 5) |
1 |
1 |
5 |
00DD D101 |
+ |
+ |
+ |
- |
+ |
DCR M |
Декрементировать (уменьшить на 1) содержимое ячейки памяти, адресуемой регистровой парой Н |
1 |
3 |
10 |
0011 0101 |
+ |
+ |
+ |
- |
+ |
INX rp |
Инкрементировать (увеличить на 1) содержимое регистровой пары rp 6) |
1 |
1 |
5 |
00RP 0011 |
|||||
DCX rp |
Декрементировать (уменьшить на 1) содержимое регистровой пары rp 6) |
1 |
1 |
5 |
00RP 1011 |
|||||
DAD rp |
Сложить содержимое регистровых пар Н и rp. Результат поместить в регистровую пару Н. (Признак С, устанавливается в 1 в случае переноса при суммировании с двойной точностью; в остальных случаях он равен 0) 6) |
1 |
3 |
10 |
00RP 1001 |
- |
- |
- |
+ |
- |
DAA |
Преобразование числа из двоичного кода в число в двоично-десятичном коде |
1 |
1 |
4 |
0010 0111 |
+ |
+ |
+ |
+ |
+ |
Группа команд логических операций |
||||||||||
ANA r |
Логическое И над содержимым аккумулятора и регистра r. Результат поместить в аккумулятор 5) |
1 |
1 |
4 |
1010 0SSS |
+ |
+ |
+ |
0 |
0 |
ANA M |
Логическое И над содержимым ак-кумулятора и ячейки памяти, адре-суемой регистровой парой Н. Ре-зультат поместить в аккумулятор |
1 |
2 |
7 |
1010 0110 |
+ |
+ |
+ |
0 |
0 |
ANI data |
Логическое И над содержимым аккумулятора и второго байта команды. Результат поместить в аккумулятор |
2 |
2 |
7 |
1110 0110 |
+ |
+ |
+ |
0 |
0 |
XRA r |
ИСКЛЮЧАЮЩЕЕ ИЛИ над со-держимым аккумулятора и регистра r. Результат поместить в аккумулятор 5) |
1 |
1 |
4 |
1010 1SSS |
+ |
+ |
+ |
0 |
0 |
XRA M |
ИСКЛЮЧАЮЩЕЕ ИЛИ над со-держимым аккумулятора и ячейки памяти, адресуемой регистровой парой Н. Результат поместить в аккумулятор |
1 |
2 |
7 |
1010 1110 |
+ |
+ |
+ |
0 |
0 |
XRI data |
ИСКЛЮЧАЮЩЕЕ ИЛИ над со-держимым аккумулятора и второго байта команды. Результат поместить в аккумулятор |
2 |
2 |
7 |
1110 1110 |
+ |
+ |
+ |
0 |
0 |
ORA r |
Логическое ИЛИ над содержимым аккумулятора и регистра r. Результат поместить в аккумулятор |
1 |
1 |
4 |
1011 0SSS |
+ |
+ |
+ |
0 |
0 |
ORA M |
Логическое ИЛИ над содержимым аккумулятора и ячейки памяти, адресуемой регистровой парой Н. Результат поместить в аккумулятор |
1 |
2 |
7 |
1011 0110 |
+ |
+ |
+ |
0 |
0 |
ORI data |
Логическое ИЛИ над содержимым аккумулятора и второго байта команды. Результат поместить в аккумулятор |
2 |
2 |
7 |
1111 0110 |
+ |
+ |
+ |
0 |
0 |
CMP r |
Сравнение. Содержимое регистра r вычитается из содержимого аккумулятора. Содержимое аккумулятора не изменяется. Признак Z = 1, если (А) = (r). Признак С = 1, если (А) < (r) 5) |
1 |
1 |
4 |
1011 1SSS |
+ |
+ |
+ |
+ |
+ |
CMP M |
Сравнение. Содержимое ячейки памяти, адресуемой регистровой парой Н вычесть из содержимого аккумулятора. Содержимое аккумулятора не изменяется. Признак Z = 1, если (А) = (М). Признак С = 1, если (А) < (M) |
1 |
2 |
7 |
1011 1110 |
+ |
+ |
+ |
+ |
+ |
CPI data |
Сравнение. Содержимое второго байта команды вычитается из содержимого аккумулятора. Содержимое аккумулятора не изменяется. Признак Z = 1, если (А) = (byte 2). Признак С = 1, если A < (byte 2) |
2 |
2 |
7 |
1111 1110 |
+ |
+ |
+ |
+ |
+ |
RLC |
Содержимое аккумулятора цикли-чески сдвигается на один разряд влево. Содержимое старшего раз-ряда аккумулятора помещается в младший разряд и в разряд С регистра признаков |
1 |
1 |
4 |
0000 0111 |
- |
- |
- |
+ |
- |
|
||||||||||
RRC |
Содержимое аккумулятора цикли-чески сдвигается на один разряд вправо. Содержимое младшего разряда аккумулятора передается в старший разряд и в разряд С регистра признаков |
1 |
1 |
4 |
0000 1111 |
- |
- |
- |
+ |
- |
RAL |
Cодержимое аккумулятора цикли-чески сдвинуть на один разряд влево через разряд С регистра признаков. Содержимое старшего разряда аккумулятора передается в разряд С, а содержимое разряда С передается в младший разряд аккумулятора |
1 |
1 |
4 |
0001 0111 |
- |
- |
- |
+ |
- |
RAR |
Содержимое аккумулятора цикли-чески сдвинуть на один разряд вправо через разряд С регистра признаков. Содержимое младшего разряда аккумулятора передается в разряд С. Содержимое разряда С передается в старший разряд аккумулятора |
1 |
1 |
4 |
0001 1111 |
- |
- |
- |
+ |
- |
CMA |
Инвертировать содержимое аккумулятора (нули становятся единицами, единицы - нулями) |
1 |
1 |
4 |
0010 1111 |
|||||
CMC |
Инвертировать значение разряда С регистра признаков |
1 |
1 |
4 |
0011 1111 |
|||||
Группа команд передачи управления |
||||||||||
JMP addr |
Безусловный переход по адресу, указанному во втором (младшая тетрада) и третьем (старшая тетрада) байтах команды. |
3 |
10 |
1100 0011 |
||||||
J condition addr |
Переход по адресу, указанному во втором (младшая тетрада) и третьем (старшая тетрада) байтах команды, если условие выполняется; в противном случае продолжается выполнение программы 7) |
3 |
3 |
10 |
11СС С010 |
|||||
CALL addr |
Безусловный переход к подпрограмме, адрес начала которой указан во втором (младшая тетрада) и третьем (старшая тетрада) байтах команды |
3 |
5 |
17 |
1100 1101 |
|||||
CALL condition addr |
Если условие выполняется, то переход к подпрограмме (см. Команду выше); в противном случае продолжается выполнение основной программы 7), 3) |
3 |
3 5 |
11 17 |
11СС С100 |
|||||
RET |
Безусловный возврат из подпрограммы |
1 |
3 |
10 |
1100 1001 |
|||||
R condition |
Возврат из подпрограммы, если условие выполняется; в противном случае продолжается выполнение подпрограммы 3,7) |
1 |
1 3 |
5 11 |
11СС С000 |
|||||
RST n |
Переход к началу программы обработки прерывания по вектору NNN. Адрес очередной команды основной программы сохраняется в стеке. Адрес первой команды программы прерывания определяется как 0000 0000 00NN N00 |
1 |
3 |
11 |
11NN N111 |
|||||
PCHL |
Содержимое регистровой пары Н занести в счетчик команд |
1 |
1 |
5 |
1110 1001 |
|||||
Команды управления стеком, вводом-выводом и состояниями микропроцессора |
||||||||||
PUSH rp |
Содержимое регистровой пары rp сохранить в стеке (регистровая пара SP не может быть использована в данной команде) 6) |
1 |
3 |
11 |
11RP 0101 |
|||||
PUSH rp |
Содержимое регистровой пары rp сохранить в стеке (регистровая пара SP не может быть использована в данной команде) 6) |
1 |
3 |
11 |
11RP 0101 |
|||||
PUSH PSW |
Запоминание в стеке слова состояния микропроцессора (содержимого аккумулятора и регистра признаков) |
1 |
3 |
11 |
1111 0101 |
|||||
POP rp |
Вывод из стека в регистровую пару rp (регистровая пара SP не может быть использована в данной команде) 6) |
1 |
3 |
10 |
11RP 0001 |
|||||
POP PSW |
Вывод из стека слова состояния микропроцессора (в аккумулятор и в регистр признаков) |
1 |
3 |
10 |
1111 0001 |
|||||
XTHL |
Содержимое регистра L обменять с содержимым ячейки памяти, адресуемой указателем стека SP. Содержимое регистра Н обменять с содержимым следующей ячейки памяти |
1 |
5 |
18 |
1110 0011 |
|||||
SPHL |
Содержимое регистровой пары Н занести в указатель стека SP |
1 |
1 |
5 |
1111 1001 |
|||||
IN port |
Данные из порта ввода, адресуемого вторым байтом команды, ввести в аккумулятор |
2 |
3 |
10 |
1101 1011 |
|||||
OUT port |
Данные из аккумулятора выдать в порт вывода, адресуемый вторым байтом команды |
2 |
3 |
10 |
1101 0011 |
|||||
EI |
Прерывания разрешены после выполнения следующей команды |
1 |
1 |
4 |
1111 1011 |
|||||
DI |
Прерывания запрещены непосредственно после выполнения данной команды |
1 |
1 |
4 |
1111 0011 |
|||||
HLT |
Останов. Процессор остановлен. Содержимое регистров и признаков не изменяется |
1 |
1 |
4 |
0111 0110 |
|||||
NOP |
Пустая операция. Содержимое ре-гистров и признаков не изменяется |
1 |
1 |
4 |
0000 0000 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.