Команды перемещения данных. Команды обработки данных. Команды переходов. Команды ввода-вывода, страница 4

Условие

Перевод

Мнемоника

Объектный код

Jump

Call

Return

Результат не равен нулю

No Zero

JNZ

CNZ

RNZ

000

Результат равен нулю

Zero

JZ

CZ

RZ

001

Нет переноса

No Carry

JNC

CNC

RNC

010

Есть перенос

Carry

JC

CC

RC

011

Нечетный результат

Parity Odd

JPO

CPO

RPO

100

Четный результат

Parity Even

JPE

CPE

RPE

101

Положительный результат

Plus

JP

CP

RP

110

Отрицательный результат

Minus

JM

CM

RM

111

1. Переходы (кол-во байт-3)

2. Вызовы (кол-во байт-3)

Если указанное условие выполняется, то управление передается команде, адрес которой указан в команде перехода.

CALL (адр.)cd – передача управления по адресу, указанному в команде, с сохранением в стеке адреса очередной команды прерванной программы.

JMP (адр.)

JNZ (адр.)

JZ (адр.)

JNC (адр.)

JC (адр.)

JPO (адр.)

JPE (адр.)

JP (адр.)

JM (адр.)

PCHL (адр.)

c3

c2

ca

d2

da

e2

ea

f2

fa

e9

-безусловный

-не ноль

-ноль

-нет переноса

-есть перенос

-нечетный р-тат

-четный рез-тат

-плюс

-минус

-загрузка счетчика команд РС сод  пары H, L.

CNZ (адр.)

CZ (адр.)

CNC (адр.)

CC (адр.)

CPO (адр.)

CPE (адр.)

CP (адр.)

CM (адр.)

c4

cc

d4

dc

e4

ec

f4

fc

Передача управления по условию (то же, что и при

 переходах).

3. Возврат (кол-во байт-1)

4. Рестарт (кол-во байт-1)

RET C9 – считывание из стека двух байт в РС.

RST

0

1

2

3

4

5

6

7

c7

cf

d7

df

e7

ef

f7

ff

Адрес очередной команды запоминается в стеке, а управление передается команде, адрес которой в 8 раз больше числа, указанного в команде.

RNZ

RZ

RNC

RC

RPO

RPE

RP

RM

c0

c8

d0

d8

e0

e8

f0

f8

Выполняется команда RET, если выполняется указанное условие.

(возврат по условию)

4.  Команды ввода-вывода

Функция

Перевод

Мнемоника

Число байт

Q-код

H-код

Объектный код

Число тактов

Ввод

Input

IN <B2>

2

333

DB

11011011

10

Вывод

Output

OUT <B2>

2

323

D3

11010011

10

Разрешено прерывание

Enable Interrupt

EI

1

373

F8

11111011

4

Запрещено прерывание

Disable Interrupt

DI

1

363

F3

11110011

4

Повторный пуск

Restart

RST A

2

3A7

C7+8A

11aaa111

4

Останов

Halt

HLT

1

166

76

01110110

7

Нет операции

No Operation

NOP

1

000

00

00000000

4

4.1. Команды ввода-вывода (кол-во байт-2)

OUT

байтd3  XX

Вывод данных из аккумулятора в порт № XX.

IN

байтdb  XX

Ввод в аккумулятор данных  из порта № ХХ.

4.2. Команды управления (кол-во байт-1)

EI

fb -

разрешение прерываний

NOT

00 - 

нет операций (пауза)

DI

f3 -

запрещение прерываний

HLT

76 -

останов

В поле операндов приняты следующие обозначения:

r, r1, r2  - внутренние регистры ( A, B, C, D, E, H, L ) или М

(М- обозначает ячейку ОЗУ, адрес которой находится в регистрах H,L);

XX        -   содержимое второго байта команды;

YY        -   содержимое третьего байта команды;

Примечание: Операнды команд «Ассемблера» могут быть записаны в различных системах счисления, которые обозначаются:

b'  - двоичная,       h' - шестнадцатиричная,     d' - десятичная );

  1. Под буквой R понимается один из внутренних регистров процессора – A,В,С,D,E,H,L,M. Данным регистрам присвоены номера R – 0,1,2,3,4,5,6,7.

A

0

B

1

C

2

D

3

E

4

H

5

L

6

M

7

  1. В двухбайтной команде код операнда обозначен как N0.
  2. В трехбайтной команде коды второго и третьего операндов обозначены как N0N1, что указывает адрес ячейки памяти N1N0=N1X161 + N0X160 .
  3. Таблица нумерации регистров

Обозначение

Двоичный номер

Обозначение

Двоичный номер

B

000

C

001

D

010

E

011

H

100

L

101

M

110

A

111