Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МПУЭВС. Лекции. Задания / pdf_ПрилПЦиПУ / Приложение_ М_ ОднокристОМЭВМ

.pdf
Скачиваний:
25
Добавлен:
11.05.2015
Размер:
679.91 Кб
Скачать

используемый в качестве регистра косвенного адреса; ad - адрес прямо адресуемого байта;

ads - адрес прямо адресуемого байта-источника; add - адрес прямо адресуемого байта-получателя; ad11 - 11-разрядный абсолютный адрес перехода; ad16 - 16-разрядный абсолютный адрес перехода; rel - относительное смещение;

#d - непосредственный операнд (1байт); #d16 - непосредственный операнд (2 байта); bit - адрес прямо адресуемого бита;

/bit - инверсия прямо адресуемого бита;

А - аккумулятор;

PC - счетчик команд;

DPTR - регистр указатель данных;

() - содержимое ячейки памяти или регистра,

М.19.6 Команды пересылки данных

Эта группа представлена 28 командами, их краткое описание приведено в таблице М.13, где также указаны тип команды (Т) в

соответствии с таблицей М.12, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).

Таблица М.13 - Команды пересылки данных

Название команды

Мнемокод

КОП

T

Б

Ц

Операция

Пересылка в аккумулятор из регистра

MOV A, Rn

11101rrr

1

1

1

(A)←(Rn)

(п=0+7)

 

 

 

 

 

 

Пересылка в аккумулятор

MOV A, ad

11100101

3

2

1

(A)←(ad)

прямоадресуемого байта

 

 

 

 

 

 

Пересылка в аккумулятор байта из

MOV A,

1110011i

1

1

1

(A)←((Ri))

РПД (i=0,1)

@Ri

 

 

 

 

 

Загрузка в аккумулятор константы

MOV A, #d

01110100

2

2

1

(A) #d

Пересылка в регистр из аккумулятора

MOV Rn, A

11111rrr

1

1

1

(Rn)←(A)

Пересылка в регистр

MOV Rn, ad

10101rrr

3

2

2

(Rn)←(ad)

прямоадресуемого байта

 

 

 

 

 

 

Загрузка в регистр константы

MOV Rn, #d

01111rrr

2

2

1

(Rn)←#d

Пересылка по прямому адресу

MOV ad, A

11110101

3

2

1

(ad) ← (A)

аккумулятора

 

 

 

 

 

 

Пересылка по прямому адресу

MOV ad, Rn

10001rrr

3

2

2

(ad)←(Rn)

регистра

 

 

 

 

 

 

Пересылка прямоадресуемого байта по

MOV add,

10000101

3

3

2

(add)← (ads)

прямому адресу

ads

 

 

 

 

 

Пересылка байта из РПД по прямому

MOV ad,

1000011i

3

2

2

(ad)←((Ri))

адресу

@Ri

 

 

 

 

 

Пересылка по прямому адресу

MOV ad, #d

01110101

7

3

2

(ad)←#d

константы

 

 

 

 

 

 

Пересылка в РПД из аккумулятора

MOV @Ri,

1111011i

1

1

1

((Ri))←(A)

 

A

 

 

 

 

 

Пересылка в РПД прямоадресуемого

MOV @Ri,

0110011i

3

2

2

((Ri))←(ad)

байта

ad

 

 

 

 

 

Пересылка в РПД константы

MOV @Ri,

0111011i

2

2

1

((Ri))←#d

 

#d

 

 

 

 

 

Загрузка указателя данных

MOV DPTR,

10010000

3

3

2

(DPTR)←

 

#d16

 

 

 

 

#d16

Пересылка в аккумулятор байта из ПП

MOVC A,

10010011

1

1

2

(A)← ((A)

 

@A+DPTR

 

 

 

 

+(DPTR))

Пересылка в аккумулятор байта из ПП

MOVC A,

10000011

1

1

2

(PC)←

 

@A+PC

 

 

 

 

(PC)+1, (A)

 

 

 

 

 

 

← ((A)+(PC))

Пересылка в аккумулятор байта из

MOVX A,

1110001i

1

1

2

(A)← ((Ri))

ВПД

@Ri

 

 

 

 

 

Пересылка в аккумулятор байта из

MOVX

11100000

1

1

2

(A)←

расширенной ВПД

A,@DPTR

 

 

 

 

((DPTR))

Пересылка в ВПД из аккумулятора

MOVX

1111001i

1

1

2

((Ri))←(A)

 

@Ri, A

 

 

 

 

 

Пересылка в расширенную ВПД из

MOVX

11110000

1

1

2

((DPTR))←

аккумулятора

@DPTR, A

 

 

 

 

(A)

Загрузка в стек

PUSH ad

11000000

3

2

2

(SP)←

 

 

 

 

 

 

(SP) + 1,

 

 

 

 

 

 

((SP))←(ad)

Извлечение из стека

POP ad

11010000

3

2

2

(ad)←(SP),

 

 

 

 

 

 

(SP)←

 

 

 

 

 

 

(SP) - 1

Обмен аккумулятора с регистром

XCH A, Rn

11001rrr

1

1

1

(A)↔ (Rn)

 

 

 

 

 

 

 

Обмен аккумулятора с

XCH A, ad

11000101

3

2

1

(A)↔(ad)

прямоадресуемым байтом

 

 

 

 

 

 

Обмен аккумулятора с байтом из РПД

XCH A,

1100011i

1

1

1

(A)↔((Ri))

 

@Ri

 

 

 

 

 

Обмен младших тетрад аккумулятора и

XCHD A,

1101011i

1

1

1

(A0...3) ↔

байта РПД

@Ri

 

 

 

 

((Ri)0..(Ri)3)

По команде MOV выполняется пересылка данных из второго операнда в первый. Эта команда не имеет доступа ни к внешней памяти данных, ни к памяти программ. Для этих целей предназначены команды M0VX и MOVC

соответственно. Первая из них обеспечивает чтение/запись байт из внешней памяти данных, вторая - чтение байт из памяти программ.

По команде ХСН выполняется обмен байтами между аккумулятором и ячейкой РПД, а по команде XCHD - обмен младшими тетрадами (битами (0- 3) и ( 4 - 7)).

Команды PUSH и POP предназначены соответственно для записи данных в стек и их чтения из стека. Размер стека ограничен лишь размером резидентной памяти данных. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08h.

Группа команд пересылок микроконтроллера имеет следующую особенность - в ней нет специальных команд для работы со специальными регистрами: PSW, таймером, портами ввода-вывода. Доступ к ним, как и к другим регистрам специальных функций, осуществляется заданием соответствующего прямого адреса, т.е. это команды обычных пересылок, в

которых вместо адреса можно ставить название соответствующего регистра.

Например, чтение PSW в аккумулятор может быть выполнено командой

MOV A, PSW, которая преобразуется Ассемблером к виду

MOVA, 0D0h (E5D0),

где Е5 - код операции, a D0 - операнд (адрес PSW).

В микро-ЭВМ аккумулятор имеет два различных имени в зависимости от способа адресации: А - при неявной адресации (например, MOV A, R0) и

АСС - при использовании прямого адреса. Первый способ предпочтительнее,

однако, не всегда применим.

М.19.7 Команды арифметических операций

Вэту группу входят 24 команды, краткое описание которых приведено

втаблице М14. Из нее следует, что микроЭВМ выполняет достаточно широкий набор команд для организации обработки целочисленных данных,

включая команды умножения и деления.

В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).

Таблица М14 - Арифметические операции.

Название команды

Мнемоко

КОП

T

Б

Ц

Операция

 

д

 

 

 

 

 

Сложение аккумулятора с регистром

ADD A,

00101

1

1

1

(A) ← (A) + (Rn)

(п=0*7)

Rn

rrr

 

 

 

 

Сложение аккумулятора с

ADD A,

001001

3

2

1

(A) ←(A) + (ad)

прямоадресуемым байтом

ad

01

 

 

 

 

Сложение аккумулятора с байтом из

ADD A,

001001

1

1

1

(A) ← (A) +

РПД (i = 0,1)

@Ri

1i

 

 

 

((Ri))

Сложение аккумулятора с

ADD A,

001001

2

2

1

(A)←(A) + #d

константой

#d

00

 

 

 

 

Сложение аккумулятора с регистром

ADDC A,

00111

1

1

1

(A)← (A) + (Rn)

и переносом

Rn

rrr

 

 

 

+ (Cr)

Сложение аккумулятора с

ADDC A,

001101

3

2

1

(A)← (A) + (ad)

прямоадресуемым байтом и

ad

01

 

 

 

+ (Cr)

переносом

 

 

 

 

 

 

Сложение аккумулятора с байтом из

ADDC A,

001101

1

1

1

(A)←(A) + ((Ri))

РПД и переносом

@Ri

1i

 

 

 

+ (Cr)

Сложение аккумулятора с

ADDC A,

001101

2

2

1

(A)← (A) + # d +

константой и переносом

#d

00

 

 

 

(Cr)

Десятичная коррекция аккумулятора

DA A

110101

1

1

1

Если (А0..A3)>9

 

 

00

 

 

 

или ((АСr)=1),то

 

 

 

 

 

 

(А0..A3)←(A0..

 

 

 

 

 

 

A3) + 6, затем

 

 

 

 

 

 

если (А4..A7)>9

 

 

 

 

 

 

или (Сr)=1, то

 

 

 

 

 

 

(А4..A7) ←

 

 

 

 

 

 

(А4..A7) + 6

Вычитание из аккумулятора

SUBB A,

10011

1

1

1

(А) ← (А) - (Сr)

регистра и заёма

Rn

rrr

 

 

 

- (Rn)

Вычитание из аккумулятора

SUBB A,

100101

3

2

1

(А) ← (А) - (Сr)

прямоадресуемого байта и заема

ad

01

 

 

 

- ((ad))

Вычитание из аккумулятора байта

SUBB A,

100101

1

1

1

(А)← (А) - (Сr) -

 

 

 

 

 

 

 

РПД и заема

@Ri

1i

 

 

 

((Ri))

 

 

 

 

 

 

 

Вычитание из аккумулятора

SUBB A,

100101

2

2

1

(А) ← (А) - (Сr)

константы и заема

d

00

 

 

 

- #d

Инкремент аккумулятора

INC A

000001

1

1

1

(А) ← (А) + 1

 

 

00

 

 

 

 

Инкремент регистра

INC Rn

00001

1

1

1

(Rn)←(Rn)+ 1

 

 

rrr

 

 

 

 

Инкремент прямоадресуемого байта

INC ad

000001

3

2

1

(ad)←(ad) + 1

 

 

01

 

 

 

 

Инкремент байта в РПД

INC @Ri

000001

1

1

1

((Ri))←((Ri))+1

 

 

1i

 

 

 

 

Инкремент указателя данных

INC

101000

1

1

2

(DPTR)

 

DPTR

11

 

 

 

←(DPTR) + 1

Декремент аккумулятора

DEC A

000101

1

1

1

(A)←(A)-1

 

 

00

 

 

 

 

Декремент регистра

DEC Rn

00011

1

1

1

(Rn)←(Rn)-1

 

 

rrr

 

 

 

 

Декремент прямоадресуемого байта

DEC ad

000101

3

2

1

(ad)←(ad)-1

 

 

01

 

 

 

 

Декремент байта в РПД

DEC @Ri

000101

1

1

1

«Ri))←((Ri))-1

 

 

1i

 

 

 

 

Умножение аккумулятора на регистр

MUL AB

101001

1

1

4

(B)(A)←(A)*(B)

В

 

00

 

 

 

 

Деление аккумулятора на регистр В

DIV AB

100001

1

1

4

(B).(A)←(A)/(B)

 

 

00

 

 

 

 

По результату выполнения команд ADD, ADDC, SUBB, MUL и DIV

устанавливаются флаги PSW, структура которых приведена в п. М.3.2.

Флаг С устанавливается при переносе из разряда D7, т. е. в случае, если результат не помещается в восемь разрядов; флаг АС устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой

DAA.

Флаг OV устанавливается при переносе из разряда D6, т. е. в случае,

если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки чисел со знаком.

Флаг Р устанавливается и сбрасывается аппаратно. Если число

единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0.

М.19.8 - Команды логических операций

В этой группе 25 команд, их краткое описание приведено в таблице М.15. Нетрудно видеть, что эти команды позволяют выполнять операции над байтами: логическое И (&), логическое ИЛИ ( V), исключающее ИЛИ ((+)),

инверсию (NOT), сброс в нулевое значение и сдвиг. В таблице указаны тип команды (Т), ее длина в байтах (Б) и время выполнения в машинных циклах

(Ц).

Таблица М15 - Логические операции и операции сдвига

Название команды

Мнемокод

КОП

T

Б

Ц

Операция

Логическое И аккумулятора и

ANL A,

01011

1

1

1

(A) ← (A)

регистра

Rn

rrr

 

 

 

AND (Rn)

Логическое И аккумулятора и

ANL A, ad

010101

3

2

1

(A) ← (A)

прямоадресуемого байта

 

01

 

 

 

AND (ad)

Логическое И аккумулятора и

ANL A,

010101

1

1

1

(A)←(A)AN

байта из РПД

@Ri

1i

 

 

 

D((Ri))

Логическое И аккумулятора и

ANL A, #d

010101

2

2

1

(A)← (A)

константы

 

00

 

 

 

AND #d

Логическое И прямоадресуемого

ANL ad, A

010100

3

2

1

(ad) ← (ad)

байта и аккумулятора

 

10

 

 

 

AND (A)

Логическое И прямоадресуемого

ANL ad,

010100

7

3

2

(ad) ← (ad)

байта и константы

#d

11

 

 

 

AND #d

Логическое ИЛИ аккумулятора и

ORLA, Rn

01001

1

1

1

(A) ← (A) OR

регистра

 

rrr

 

 

 

(Rn)

Логическое ИЛИ аккумулятора и

ORLA, ad

010001

3

2

1

(A) ← (A) OR

прямоадресуемого байта

 

01

 

 

 

(ad)

Логическое ИЛИ аккумулятора и

ORLA,

010001

1

1

1

(A)← (A) OR

байта из РПД

@Ri

1i

 

 

 

((Ri))

Логическое ИЛИ аккумулятора и

ORL A, #d

010001

2

2

1

(A)← (A) OR

константы

 

00

 

 

 

#d

Логическое ИЛИ

ORL ad, A

010000

3

2

1

(ad) ← (ad)

прямоадресуемого байта и

 

10

 

 

 

OR (A)

аккумулятора

 

 

 

 

 

 

Логическое ИЛИ

ORL ad,

010000

7

3

2

(ad)← (ad)

прямоадресуемого байта и

#d

11

 

 

 

OR #d

константы

 

 

 

 

 

 

Исключающее ИЛИ аккумулятора

XRL A, Rn

01101

1

1

1

(A) ← (A)

и регистра

 

rrr

 

 

 

XOR (Rn)

Исключающее ИЛИ аккумулятора

XRL A, ad

011001

3

2

1

(A) ← (A)

 

 

 

 

 

 

 

и прямоадресуемого байта

 

01

 

 

 

XOR (ad)

 

 

 

 

 

 

 

Исключающее ИЛИ аккумулятора

XRL A,

011001

1

1

1

(A)←(A)

и байта из РПД

@Ri

11

 

 

 

XOR ((Ri))

Исключающее ИЛИ аккумулятора

XRL A, #d

011001

2

2

1

(A)← (A)

и константы

 

00

 

 

 

XOR #d

Исключающее ИЛИ

XRL ad, A

011000

3

2

1

(ad)← (ad)

прямоадресуемого байта и

 

10

 

 

 

XOR (A)

аккумулятора

 

 

 

 

 

 

Исключающее ИЛИ

XRL ad,

011000

7

3

2

(ad)← (ad)

прямоадресуемого байта и

#d

11

 

 

 

XOR #d

константы

 

 

 

 

 

 

Сброс аккумулятора

CLR A

111001

1

1

1

(A)<-0

 

 

00

 

 

 

 

Инверсия аккумулятора

CPL A

111101

1

1

1

(A)←NOT(A)

 

 

00

 

 

 

 

Сдвиг аккумулятора влево

RL A

001000

1

1

1

(An+1)←(An),

циклический

 

11

 

 

 

n=0÷6, (Ao)

 

 

 

 

 

 

← (A7)

Сдвиг аккумулятора влево через

RLC A

001100

1

1

1

(An+i)←(An),

перенос

 

11

 

 

 

n=0÷6, (Ao)

 

 

 

 

 

 

←(С), (С)←

 

 

 

 

 

 

(А7)

Сдвиг аккумулятора вправо

RR A

000000

1

1

1

(An)←(An+i),

циклический

 

11

 

 

 

n=0÷6, (A 7)←

 

 

 

 

 

 

(Ao)

Сдвиг аккумулятора вправо через

RRC A

000100

1

1

1

(An)←(An+i),

перенос

 

11

 

 

 

n=0÷6, (A 7)←

 

 

 

 

 

 

(С), (С) ←

 

 

 

 

 

 

(Ao)

Обмен местами тетрад в

SWAP A

110001

1

1

1

(A0...3) ↔

аккумуляторе

 

00

 

 

 

(A4...7)

М.19.9 Команды операций над битами

Группа состоит из 12 команд, краткое описание которых приведено в таблице М16. Эти команды позволяют выполнять операции над отдельными битами: сброс, установку, инверсию бита, а также логические И (&) и ИЛИ

(V). В качестве "логического" аккумулятора, участвующего во всех операциях с двумя операндами, выступает признак переноса С (разряд D7 PSW), в качестве операндов могут использоваться 128 бит из резидентной

памяти данных и регистры специальных функций, допускающие адресацию отдельных бит.

В таблице М16 указаны тип команды (Т), ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).

Таблица М16 - Операции с битами

Название команды

 

Мнемокод

КОП

т

Б

Ц

Операция

 

 

 

 

 

 

 

 

 

Сброс переноса

 

 

CLRC

11000011

1

1

1

(С)←0

 

 

 

 

 

 

 

 

 

 

Сброс бита

 

 

 

CLR bit

11000010

4

2

1

(b)←0

 

 

 

 

 

 

 

 

Установка переноса

 

SETBC

11010011

1

1

1

(С)←1

 

 

 

 

 

 

 

 

 

Установка бита

 

 

SETB bit

11010010

4

2

1

(b)←1

 

 

 

 

 

 

 

 

Инверсия переноса

 

CPLC

10110011

1

1

1

(С)←NOT(C)

 

 

 

 

 

 

 

 

 

Инверсия бита

 

 

CPL bit

10110010

4

2

1

(b)←NOT(b)

 

 

 

 

 

 

 

 

 

Логическое

И

бита и

ANL C, bit

10000010

4

2

2

(C)←(C) & (b)

переноса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Логическое

И

инверсии

ANL C, /bit

10110000

4

2

2

(С)←(С)&

бита и переноса

 

 

 

 

 

 

 

(NOT(b))

 

 

 

 

 

 

 

Логическое ИЛИ бита и

ORL C, bit

01110010

4

2

2

(С)←(С) OR (b)

переноса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Логическое

 

 

ИЛИ

ORL C, /bit

10100000

4

2

2

(С)←(С)OR

инверсии бита и переноса

 

 

 

 

 

(NOT(b))

 

 

 

 

 

 

 

Пересылка бита в перенос

MOV C, bit

10100010

4

2

1

(C)←(b)

 

 

 

 

 

 

 

Пересылка переноса в бит

MOV bit, С

10010010

4

2

2

(b)←(C)

 

 

 

 

 

 

 

 

 

 

М.19.10 Команды передачи управления

Группа представлена командами безусловного и условного переходов, командами вызова подпрограмм и командами возврата из подпрограмм.

В таблице М.17 указаны тип команды (Т), ее длина в байтах (Б) и время выполнения в машинных циклах (Ц). Команда безусловного перехода LJMP (L - long - длинный) осуществляет переход по абсолютному 16-битному адресу,

указанному в теле команды, т. е. команда обеспечивает переход в любую точку памяти программ.

Таблица М.17 - Команды передачи управления

Название команды

 

 

 

Мнемокод

КОП

T

Б

Ц

Операция

 

Длинный переход в полном

LJMP ad16

00000010

1

3

2

(PC)←ad16

 

объеме ПП

 

 

 

 

 

 

 

2

 

 

 

 

Абсолютный

 

переход

AJMP ad11

a10a9a8000

6

2

2

(PC)←(PC)+2, (РС0-

внутри страницы в 2 Кб

 

 

 

01

 

 

 

PC10)←ad11

 

Короткий

относительный

SJMP rel

10000000

5

2

2

(PC)←(PC) + 2, (PC)

переход внутри страницы в

 

 

 

 

 

 

(PC) +rel

 

256 байт

 

 

 

 

 

 

 

 

 

 

 

 

 

Косвенный относительный

JMP

 

01110011

1

1

2

(PC)← (A) + (DPTR)

переход

 

 

 

 

 

©A+DPTR

 

 

 

 

 

 

Переход, если аккумулятор

JZ rel

 

01100000

5

2

2

(PC)←(PC)+2,

если

равен нулю

 

 

 

 

 

 

 

 

 

 

(А)=0,

то

 

 

 

 

 

 

 

 

 

 

 

 

(PC)←(PC)+rel

 

Переход, если аккумулятор

JNZ rel

 

01110000

5

2

2

(PC)←(PC)+2,

если

не равен нулю

 

 

 

 

 

 

 

 

 

 

(А)*0,

то

 

 

 

 

 

 

 

 

 

 

 

 

(PC)←(PC)+rel

 

Переход,

если

 

перенос

JC rel

 

01000000

5

2

2

(PC)←(PC)+2,

если

равен единице

 

 

 

 

 

 

 

 

 

 

(Сr)=1,

то

 

 

 

 

 

 

 

 

 

 

 

 

(PC)←(PC)+rel

 

Переход,

если

 

перенос

JNC rel

 

01010000

5

2

2

(PC)←(PC)+2,

если

равен нулю

 

 

 

 

 

 

 

 

 

 

(Сr)=0,

то

 

 

 

 

 

 

 

 

 

 

 

 

(PC)←(PC)+rel

 

Переход,

если

бит

равен

JB bit, rel

00100000

1

3

2

(PC)←(PC)+3,

если

единице

 

 

 

 

 

 

 

 

1

 

 

(bit)=l,

то

 

 

 

 

 

 

 

 

 

 

 

 

(PC)←(PC)+rel

 

Переход,

если

бит

равен

JNB bit, rel

00110000

1

3

2

(PC)←(PC)+3,

если

нулю

 

 

 

 

 

 

 

 

1

 

 

(bit)=0,

то

 

 

 

 

 

 

 

 

 

 

 

 

(PC)←(PC)+rel

 

Переход,

если

 

бит

JBC bit, rel

00010000

1

3

2

(PC)← (PC) + 3,

установлен,

 

 

 

с

 

 

 

1

 

 

если (bit)=1, то (bit)

последующим сбросом бита

 

 

 

 

 

 

← 0 и (РС)← (PC) +

 

 

 

 

 

 

 

 

 

 

 

 

rel

 

Декремент

регистра

и

DJNZ

Rn,

11011rrr

5

2

2

(PC)(PC) + 2, (Rn)

переход, если не нуль

 

 

rel

 

 

 

 

 

←(Rn)-1,

если

 

 

 

 

 

 

 

 

 

 

 

 

(Rn)0, то (PC)←

 

 

 

 

 

 

 

 

 

 

 

 

(PC) + rel

 

Декремент

 

 

 

 

 

DJNZ

ad,

11010101

8

3

2

(PC)←(PC)+2,

 

прямоадресуемого

байта

и

rel

 

 

 

 

 

(ad)← (ad)-1, если

переход, если не нуль

 

 

 

 

 

 

 

 

(ad) 0, то (PC)

 

 

 

 

 

 

 

 

 

 

 

 

(PC) + rel

 

Сравнение

аккумулятора

с

CJNE

A,

10110101

8

3

2

(PC)(PC)+З,если

прямоадресуемым байтом и

ad, rel

 

 

 

 

 

(A) (ad), то (PC)←

переход, еслк не равно

 

 

 

 

 

 

 

(PC) + ге1, если (A)

 

 

 

 

 

 

 

 

 

 

< (ad), то (Сr)←1,

 

 

 

 

 

 

 

 

 

 

иначе (Сr)← 0

 

Сравнение

аккумулятора

с

CJNE

A,

10110100

1

3

2

(PC)(PC)+З,если

константой и переход, если

#d, rel

 

 

0

 

 

(А) #d, то (PC)

не равно

 

 

 

 

 

 

 

 

 

(PC) + ге1,если (А)

 

 

 

 

 

 

 

 

 

 

< #d, то (Cr)←1,

 

 

 

 

 

 

 

 

 

 

иначе (Сr)←0

 

Сравнение

регистра

с

CJNE

Rn,

10111rrr

1

3

2

(PC)←(PC)+З, если

константой и переход, если

#d, rel

 

 

0

 

 

(Rn) #d, то (PC)←

не равно

 

 

 

 

 

 

 

 

 

(PC) + rel,если (Rn)

 

 

 

 

 

 

 

 

 

 

< #d, то (Cr)←1,

 

 

 

 

 

 

 

 

 

 

иначе (Сr)←0

 

Сравнение байта в РПД с

CJNE

 

1011011i

1

3

2

(PC)←(PC) + З,если

константой и переход, если

@Ri,#d, rel

 

0

 

 

((Ri)) #d, то (PC)

не равно

 

 

 

 

 

 

 

 

 

←(PC)+ге1,если

 

 

 

 

 

 

 

 

 

 

((Ri)) < #d, то

 

 

 

 

 

 

 

 

 

 

(Cr)←1,

иначе

 

 

 

 

 

 

 

 

 

 

(Сr)←0

 

Длинный

 

вызов

LCALL

 

00010010

1

3

2

(PC)←(PC)+3,

(SP)

подпрограммы

 

 

adl6

 

 

2

 

 

←(SP)+1,

((SP))

 

 

 

 

 

 

 

 

 

 

←(PC0...7),

 

 

 

 

 

 

 

 

 

 

 

(SP)←(SP)+1,

((SP))

 

 

 

 

 

 

 

 

 

 

←(PC8...15),

 

 

 

 

 

 

 

 

 

 

 

(PC)←ad16

 

Абсолютный

вызов

ACALL

 

a10a9a8100

6

2

2

(PC)←(PC)+2,

(SP)

подпрограммы в

пределах

ad11

 

01

 

 

 

←(SP)+1,

((SP))

страницы в 2 Кб

 

 

 

 

 

 

 

 

←(PC0...7),

 

 

 

 

 

 

 

 

 

 

 

(SP)←(SP)+1,

((SP))

 

 

 

 

 

 

 

 

 

 

←(PC8..15), (PC0-

 

 

 

 

 

 

 

 

 

 

10) ←ad11

 

Возврат из подпрограммы

 

RET

 

00100010

1

1

2

(PC8...15)←((SP)),

 

 

 

 

 

 

 

 

 

 

(SP)←(SP)-1,

 

 

 

 

 

 

 

 

 

 

 

(PC0...7)((SP)),

 

 

 

 

 

 

 

 

 

 

(SP)←(SP) - 1

 

Возврат из

подпрограммы

RETI

 

00110010

1

1

2

(PC8.,.15)←((SP)),

обработки прерывания

 

 

 

 

 

 

 

(SP)←(SP)-1,

 

 

 

 

 

 

 

 

 

 

 

(PC0...7)←((SP)),

 

 

 

 

 

 

 

 

 

 

(SP)← (SP) - 1

 

Пустая операция

 

 

NOP

 

00000000

1

1

1

(PC)←(PC)+ 1

 

Действие команды AJMP (А - absolute - абсолютный) аналогично команде