Скачиваний:
144
Добавлен:
21.02.2014
Размер:
1.47 Mб
Скачать

10.2.7 Байт префикса.

Байт префикса был добавлен к обычным командам с целью расширения набора команд MC68HC11E9. Эти команды обычно связаны с регистром Y. Коды команд без префиксного байта можно рассматривать как страницу 1 общей карты кодов. Для кодов, которые рассматриваются, как принадлежащие страницам 2, 3 и 4 требуются следующие префиксные байты: $18 для страницы 2, $1A для страницы 3 и $CD для страницы 4.

10.3 Система команд.

Центральный процессор микроконтроллера MC68HC11E9 является расширением ЦП MC6801. Дополнительно к системе команд MC6800 и MC6801 ЦП MC68HC11E9 имеет многостраничную карту команд содержащую в общей сложности 91 новую команду. Основные дополнительные команды: команды, использующие индексный регистр Y, команды деление 16-разрядных чисел, команды STOP и WAIT, а также команды работы с битами.

Таблица 10-1 показывает весь набор команд MC68HC11E9 со всеми допустимыми режимами адресации. Для каждой команды представлены: набор операндов, длина кода команды в байтах и время выполнения в циклах частоты E ЦП. В конце таблицы находятся замечания, которые объясняют содержимое столбцов “Типы операндов” и “Время выполнения” для некоторых команд. Определение “Специальных операндов”, ссылка на которые встречается в столбце “Логическое выражение” можно найти на рисунке 10-2.

Таблицы с 10-2 по 10-8 дают детальное описание информации, находящейся на шине адреса, данных и на линии чтение/запись (R/W/) в течение каждого цикла команды. Эта информация полезна для сравнения результатов, которые ожидаются и тех, которые в действительности имеют место в ходе отладки программного и аппаратного обеспечения. Информация собрана в группы в соответствии с режимом адресации и числом циклов на команду. Вообще, команды, имеющие одинаковый режим адресации и число циклов, выполняются одинаковым образом. Исключения также отмечены в таблице.

Название

Операция

Логическое

Режи-мы ад-реса-

Машинный код (шестнадцати-ричный)

Ба

Цик

Тип поциклового

Содержимое регистра условий

команды

выражение

ции операнда

Код

Типы операндов

йт

лов

выполнения

S

X

H

I

N

Z

V

C

ABA

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

A+B®A

INH

1B

1

2

2-1

-

-

ê

-

ê

ê

ê

ê

ABX

Прибавить

B к X

IX+00:B®IX

INH

3A

1

3

2-3

-

-

-

-

-

-

-

-

ABY

Прибавить

B к Y

IY+00:B®IY

INH

18 3A

2

4

2-4

-

-

-

-

-

-

-

-

ADCA

Прибавить к A

A+M+C®A

A IMM

89

ii

2

2

3-1

-

-

ê

-

ê

ê

ê

ê

(оп.)

с учетом

A DIR

99

dd

2

3

4-1

флага C

A EXT

B9

hh ll

3

4

5-2

A IND,X

A9

ff

2

4

6-2

A IND,Y

18 A9

ff

3

5

7-2

ADCB

Прибавить к B

B+M+C®B

B IMM

C9

ii

2

2

3-1

-

-

ê

-

ê

ê

ê

ê

(оп.)

с учетом

B DIR

D9

dd

2

3

4-1

флага C

B EXT

F9

hh ll

3

4

5-2

B IND,X

E9

ff

2

4

6-2

B IND,Y

18 E9

ff

3

5

7-2

ADDA

Прибавить к A

A+M®A

A IMM

8B

ii

2

2

3-1

-

-

ê

-

ê

ê

ê

ê

(оп.)

A DIR

9B

dd

2

3

4-1

A EXT

BB

hh ll

3

4

5-2

A IND,X

AB

ff

2

4

6-2

A IND,Y

18 AB

ff

3

5

7-2

ADDB

Прибавить к B

B+M®B

B IMM

CB

ii

2

2

3-1

-

-

ê

-

ê

ê

ê

ê

(оп.)

B DIR

DB

dd

2

3

4-1

B EXT

FB

hh ll

3

4

5-2

B IND,X

EB

ff

2

4

6-2

B IND,Y

18 EB

ff

3

5

7-2

ADDD

Прибавить

D+M:M+1

IMM

CB

ii

2

2

3-1

-

-

ê

-

ê

ê

ê

ê

(оп.)

16-разрядное

®D

DIR

DB

dd

2

3

4-1

число к D

EXT

FB

hh ll

3

4

5-2

IND,X

EB

ff

2

4

6-2

IND,Y

18 EB

ff

3

5

7-2

ANDA

Логическое

A·M®A

A IMM

84

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

умножение A

A DIR

94

dd

2

3

4-1

и содержимого

A EXT

B4

hh ll

3

4

5-2

памяти

A IND,X

A4

ff

2

4

6-2

A IND,Y

18 A4

ff

3

5

7-2

ANDB

Логическое

B·M®B

B IMM

C4

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

умножение B

B DIR

D4

dd

2

3

4-1

и содержимого

B EXT

F4

hh ll

3

4

5-2

памяти

B IND,X

E4

ff

2

4

6-2

B IND,Y

18 E4

ff

3

5

7-2

ASL

Арифметичес-

¬

EXT

78

hh ll

3

6

5-8

-

-

-

-

ê

ê

ê

ê

(оп.)

кий сдвиг

¬¬0

IND,X

68

ff

2

6

6-3

влево

C b7 b0

IND,Y

18 68

ff

3

7

7-3

ASLA

A INH

48

1

2

2-1

ASLB

B INH

58

1

2

2-1

ASLD

Двойной ариф

¬

INH

05

1

3

2-2

-

-

-

-

ê

ê

ê

ê

метический

¬--------¬0

сдвиг влево

C b15 b0

ASR

Арифметичес-

éù ®

EXT

78

hh ll

3

6

5-8

-

-

-

-

ê

ê

ê

ê

(оп.)

кий сдвиг

®®˜

IND,X

68

ff

2

6

6-3

вправо

b7 b0 C

IND,Y

18 68

ff

3

7

7-3

ASRA

A INH

48

1

2

2-1

ASRB

B INH

58

1

2

2-1

BCC (см.)

Ветвление, если флаг C очищен

? C=0

REL

24

rr

2

3

8-1

-

-

-

-

-

-

-

-

BCLR

Очищает бит(ы)

M·(mm)®M

DIR

15

dd mm

3

6

4-10

-

-

-

-

ê

ê

0

-

(оп.)

IND,X

1D

ff mm

3

7

6-13

(мас.)

IND,Y

18 1D

ff mm

4

8

7-10

BCS (см.)

Ветвление, если флаг C установлен

? C=1

REL

25

rr

2

3

8-1

-

-

-

-

-

-

-

-

BEQ (см.)

Ветвление, если результат=0

? Z=1

REL

27

rr

2

3

8-1

-

-

-

-

-

-

-

-

BGE (см.)

Ветвление, если результат³0

? NÅV=0

REL

2C

rr

2

3

8-1

-

-

-

-

-

-

-

-

BGT (см.)

Ветвление, если результат>0

?Z+(NÅV)=0

REL

2E

rr

2

3

8-1

-

-

-

-

-

-

-

-

BHI (см.)

Ветвление, если результат>

? C+Z=0

REL

22

rr

2

3

8-1

-

-

-

-

-

-

-

-

BHS (см.)

Ветвление, если результат³

? C=0

REL

24

rr

2

3

8-1

-

-

-

-

-

-

-

-

BITA

A·M

A IMM

85

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

A DIR

95

dd

2

3

4-1

A EXT

B5

hh ll

3

4

5-2

A IND,X

A5

ff

2

4

6-2

A IND,Y

18 A5

ff

3

5

7-2

BITB

Тест бита(ов) B

B·M

B IMM

C5

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

и содержимого

B DIR

D5

dd

2

3

4-1

памяти

B EXT

F5

hh ll

3

4

5-2

B IND,X

E5

ff

2

4

6-2

B IND,Y

18 E5

ff

3

5

7-2

BLE (см.)

Ветвление, если результат£0

?Z+(NÅV)=0

REL

2F

rr

2

3

8-1

-

-

-

-

-

-

-

-

BLO (см.)

Ветвление, если результат<

? C=1

REL

25

rr

2

3

8-1

-

-

-

-

-

-

-

-

BLS (см.)

Ветвление, если результат£

? C+Z=1

REL

23

rr

2

3

8-1

-

-

-

-

-

-

-

-

BLT (см.)

Ветвление, если результат<0

? NÅV=1

REL

2D

rr

2

3

8-1

-

-

-

-

-

-

-

-

BMI (см.)

Ветвление, если результат<0

? N=1

REL

2B

rr

2

3

8-1

-

-

-

-

-

-

-

-

BNE (см.)

Ветвление, если результат¹0

? Z=0

REL

26

rr

2

3

8-1

-

-

-

-

-

-

-

-

BPL (см.)

Ветвление, если результат>0

? N=0

REL

2A

rr

2

3

8-1

-

-

-

-

-

-

-

-

BRA (см.)

Ветвление всегда

? 1=1

REL

20

rr

2

3

8-1

-

-

-

-

-

-

-

-

BRCLR

Ветвление, если

?M·mm=0

DIR

13

dd mm

4

6

4-11

-

-

-

-

-

-

-

-

(оп.)

бит(ы)

IND,X

1F

ff mm

4

7

6-14

(мас.)

очищены

IND,Y

18 1F

ff mm

5

8

7-11

BRN (см.)

Ветвление никогда

? 1=0

REL

21

rr

2

3

8-1

-

-

-

-

-

-

-

-

BRSET

Ветвление, если

?(M)·mm=0

DIR

12

dd mm

4

6

4-11

-

-

-

-

-

-

-

-

(оп.)

бит(ы)

IND,X

1E

ff mm

4

7

6-14

(мас.)

установлены

IND,Y

18 1E

ff mm

5

8

7-11

BSET

Устанавливает

M+mm®M

DIR

14

dd mm

3

6

4-10

-

-

-

-

ê

ê

0

-

(оп.)

бит(ы)

IND,X

1C

ff mm

3

7

6-13

(мас.)

IND,Y

18 1C

ff mm

4

8

7-10

BSR (см.)

Ветвление, на подпрограмму

См. спец. операнды

REL

8D

rr

2

6

8-2

-

-

-

-

-

-

-

-

BVC (см.)

Ветвление, если было переполнение

? V=0

REL

28

rr

2

3

8-1

-

-

-

-

-

-

-

-

BVS (см.)

Ветвление, если не было переполнения

? V=1

REL

29

rr

2

3

8-1

-

-

-

-

-

-

-

-

CBA

Сравнение

A и B

A-B

INH

11

1

2

2-1

-

-

-

-

ê

ê

ê

ê

CLC

Очистить флаг переноса

0®C

INH

0C

1

2

2-1

-

-

-

-

-

-

-

0

CLI

Очистить маску прерываний

0®I

INH

0E

1

2

2-1

-

-

-

0

-

-

-

-

CLR

Очистить байт

0®M

EXT

7F

hh ll

3

6

5-8

-

-

-

-

0

1

0

0

(оп.)

памяти

IND,X

6F

ff

2

6

6-3

IND,Y

18 6F

ff

3

7

7-3

CLRA

Очистить аккумулятор A

0®A

A INH

4F

1

2

2-1

-

-

-

-

0

1

0

0

CLRB

Очистить аккумулятор B

0®B

B INH

5F

1

2

2-1

-

-

-

-

0

1

0

0

CLV

Очистить флаг переполнения

0®V

INH

0A

1

2

2-1

-

-

-

-

-

-

0

-

CMPA

Сравнение A

A-M

A IMM

81

ii

2

2

3-1

-

-

-

-

ê

ê

ê

ê

(оп.)

с памятью

A DIR

91

dd

2

3

4-1

A EXT

B1

hh ll

3

4

5-2

A IND,X

A1

ff

2

4

6-2

A IND,Y

18 A1

ff

3

5

7-2

CMPB

Сравнение B

B-M

B IMM

C1

ii

2

2

3-1

-

-

-

-

ê

ê

ê

ê

(оп.)

с памятью

B DIR

D1

dd

2

3

4-1

B EXT

F1

hh ll

3

4

5-2

B IND,X

E1

ff

2

4

6-2

B IND,Y

18 E1

ff

3

5

7-2

COM

Дополнение

$FF-M®M

EXT

73

hh ll

3

6

5-8

-

-

-

-

ê

ê

0

1

(оп.)

байта памяти

IND,X

63

ff

2

6

6-3

до минус единицы

IND,Y

18 63

ff

3

7

7-3

COMA

Дополнение A до минус единицы

$FF-A®A

A INH

43

1

2

2-1

-

-

-

-

ê

ê

0

1

COMB

Дополнение B до минус единицы

$FF-B®B

B INH

53

1

2

2-1

-

-

-

-

ê

ê

0

1

CPD

Сравнение D

D-M:M+1

IMM

1A 83

jj kk

4

5

3-5

-

-

-

-

ê

ê

ê

ê

(оп.)

с памятью

DIR

1A 93

dd

3

6

4-9

16 бит

EXT

1A B3

hh ll

4

7

5-11

IND,X

1A A3

ff

3

7

6-11

IND,Y

CD A3

ff

3

7

7-8

CPX

Сравнение X

IX-M:M+1

IMM

8C

jj kk

3

4

3-3

-

-

-

-

ê

ê

ê

ê

(оп.)

с памятью

DIR

9C

dd

2

5

4-7

16 бит

EXT

BC

hh ll

3

6

5-10

IND,X

AC

ff

2

6

6-10

IND,Y

CD AC

ff

3

7

7-8

CPY

Сравнение Y

IY-M:M+1

IMM

18 8C

jj kk

4

5

3-5

-

-

-

-

ê

ê

ê

ê

(оп.)

с памятью

DIR

18 9C

dd

3

6

4-9

16 бит

EXT

18 BC

hh ll

4

7

5-11

IND,X

1A AC

ff

3

7

6-11

IND,Y

18 AC

ff

3

7

7-8

DAA

Десятичная коррекция A

Коррекция суммы в BCD

INH

19

-

-

-

-

ê

ê

ê

ê

DEC

Декремент

M-1®M

EXT

7A

hh ll

3

6

5-8

-

-

-

-

ê

ê

ê

-

(оп.)

байта памяти

IND,X

6A

ff

2

6

6-3

IND,Y

18 6A

ff

3

7

7-3

DECA

Декремент A

A-1®A

A INH

4A

1

2

2-1

-

-

-

-

ê

ê

ê

-

DECB

Декремент B

B-1®B

B INH

5A

1

2

2-1

-

-

-

-

ê

ê

ê

-

DES

Декремент SP

SP-1®SP

INH

34

1

3

2-3

-

-

-

-

-

-

-

-

DEX

Декремент индексного регистра X

IX-1®SP

INH

09

1

3

2-2

-

-

-

-

-

ê

-

-

DEY

Декремент индексного регистра Y

IY-1®SP

INH

18 09

2

4

2-4

-

-

-

-

-

ê

-

-

EORA

Исключающее

AÅM®A

A IMM

88

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

ИЛИ A

A DIR

98

dd

2

3

4-1

и памяти

A EXT

B8

hh ll

3

4

5-2

A IND,X

A8

ff

2

4

6-2

A IND,Y

18 A8

ff

3

5

7-2

EORB

Исключающее

BÅM®B

B IMM

C8

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

ИЛИ B

B DIR

D8

dd

2

3

4-1

и памяти

B EXT

F8

hh ll

3

4

5-2

B IND,X

E8

ff

2

4

6-2

B IND,Y

18 E8

ff

3

5

7-2

FDIV

Дробное

16-разрядное деление

D/IX®IX;r®D

INH

03

1

41

2-17

-

-

-

-

-

½

½

½

IDIV

Целочисленное

16-разрядное деление

D/IX®IX;r®D

INH

02

1

41

2-17

-

-

-

-

-

½

0

½

INC

Инкремент

M-1®M

EXT

7C

hh ll

3

6

5-8

-

-

-

-

ê

ê

ê

-

(оп.)

байта памяти

IND,X

6C

ff

2

6

6-3

IND,Y

18 6C

ff

3

7

7-3

INCA

Инкремент A

A+1®A

A INH

4C

1

2

2-1

-

-

-

-

ê

ê

ê

-

INCB

Инкремент B

B+1®B

B INH

5C

1

2

2-1

-

-

-

-

ê

ê

ê

-

INS

Инкремент SP

SP+1®SP

INH

31

1

3

2-3

-

-

-

-

-

-

-

-

INX

Инкремент индексного регистра X

IX+1®SP

INH

08

1

3

2-2

-

-

-

-

-

ê

-

-

INY

Инкремент индексного регистра Y

IY+1®SP

INH

18 08

2

4

2-4

-

-

-

-

-

ê

-

-

JMP

Переход

См. спец.

EXT

7E

hh ll

3

3

5-1

-

-

-

-

-

-

-

-

(оп.)

операнды

IND,X

6E

ff

2

3

6-1

IND,Y

18 6E

ff

3

4

7-1

JSR

Переход

См. спец.

DIR

9D

dd

2

5

4-8

-

-

-

-

-

-

-

-

(оп.)

на

операнды

EXT

BD

hh ll

3

6

5-12

подпрограмму

IND,X

AD

ff

2

6

6-12

IND,Y

18 AD

ff

3

7

7-9

LDAA

Загрузка в A

M®A

A IMM

86

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

значения

A DIR

96

dd

2

3

4-1

из памяти

A EXT

B6

hh ll

3

4

5-2

A IND,X

A6

ff

2

4

6-2

A IND,Y

18 A6

ff

3

5

7-2

LDAB

Загрузка в B

M®B

B IMM

C6

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

значения

B DIR

D6

dd

2

3

4-1

из памяти

B EXT

F6

hh ll

3

4

5-2

B IND,X

E6

ff

2

4

6-2

B IND,Y

18 E6

ff

3

5

7-2

LDD

Загрузка в D

M®A;

IMM

CC

jj kk

3

3

3-2

-

-

-

-

ê

ê

0

-

(оп.)

значения

M+1®B

DIR

DC

dd

2

4

4-3

из памяти

EXT

FC

hh ll

3

5

5-4

IND,X

EC

ff

2

5

6-6

IND,Y

18 EC

ff

3

6

7-6

LDS

Загрузка в SP

M:M+1®SP

IMM

8E

jj kk

3

3

3-2

-

-

-

-

ê

ê

0

-

(оп.)

значения

DIR

9E

dd

2

4

4-3

из памяти

EXT

BE

hh ll

3

5

5-4

IND,X

AE

ff

2

5

6-6

IND,Y

18 AE

ff

3

6

7-6

LDX

Загрузка в

M:M+1®IX

IMM

CE

jj kk

3

3

3-2

-

-

-

-

ê

ê

0

-

(оп.)

индексный

DIR

DE

dd

2

4

4-3

регистр X

EXT

FE

hh ll

3

5

5-4

значения

IND,X

EE

ff

2

5

6-6

из памяти

IND,Y

CD EE

ff

3

6

7-6

LDY

Загрузка в

M:M+1®IY

IMM

18 CE

jj kk

4

4

3-4

-

-

-

-

ê

ê

0

-

(оп.)

индексный

DIR

18 DE

dd

3

5

4-5

регистр Y

EXT

18 FE

hh ll

4

6

5-6

значения

IND,X

1A EE

ff

3

6

6-7

из памяти

IND,Y

18 EE

ff

3

6

7-6

LSL

Логический

¬

EXT

78

hh ll

3

6

5-8

-

-

-

-

ê

ê

ê

ê

(оп.)

сдвиг влево

¬¬0

IND,X

68

ff

2

6

6-3

C b7 b0

IND,Y

18 68

ff

3

7

7-3

LSLA

A INH

48

1

2

2-1

LSLB

B INH

58

1

2

2-1

LSLD

Двойной

¬

INH

05

1

3

2-2

-

-

-

-

ê

ê

ê

ê

логический

¬--------¬0

сдвиг влево

C b15 b0

LSR

Логический

®

EXT

74

hh ll

3

6

5-8

-

-

-

-

0

ê

ê

ê

(оп.)

сдвиг вправо

0®®˜

IND,X

64

ff

2

6

6-3

b7 b0 C

IND,Y

18 64

ff

3

7

7-3

LSRA

A INH

44

1

2

2-1

LSRB

B INH

54

1

2

2-1

LSRD

Двойной

®

INH

04

1

3

2-2

-

-

-

-

0

ê

ê

ê

логический

0®--------®ž

сдвиг вправо

b15 b0 C

MUL

Умножение 8x8

AxB®D

INH

3D

1

10

2-13

-

-

-

-

-

-

-

ê

NEG

Дополнение

0-M®M

EXT

70

hh ll

3

6

5-8

-

-

-

-

ê

ê

ê

ê

(оп.)

байта памяти

IND,X

60

ff

2

6

6-3

до нуля

IND,Y

18 60

ff

3

7

7-3

NEGA

Дополнение A до нуля

0-A®A

A INH

40

1

2

2-1

-

-

-

-

ê

ê

ê

ê

NEGB

Дополнение B до нуля

0-B®B

B INH

50

1

2

2-1

-

-

-

-

ê

ê

ê

ê

NOP

Нет операции

Нет операции

INH

01

1

2

2-1

-

-

-

-

-

-

-

-

ORAA

Логическое

A+M®A

A IMM

8A

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

ИЛИ A

A DIR

9A

dd

2

3

4-1

и памяти

A EXT

BA

hh ll

3

4

5-2

A IND,X

AA

ff

2

4

6-2

A IND,Y

18 AA

ff

3

5

7-2

ORAB

Логическое

B+M®B

B IMM

CA

ii

2

2

3-1

-

-

-

-

ê

ê

0

-

(оп.)

ИЛИ B

B DIR

DA

dd

2

3

4-1

и памяти

B EXT

FA

hh ll

3

4

5-2

B IND,X

EA

ff

2

4

6-2

B IND,Y

18 EA

ff

3

5

7-2

PSHA

Сохранить A

в стеке

A®Stk;

SP=SP-1

A INH

36

1

3

2-6

-

-

-

-

-

-

-

-

PSHB

Сохранить B

в стеке

B®Stk;

SP=SP-1

B INH

37

1

3

2-6

-

-

-

-

-

-

-

-

PSHX

Сохранить X

в стеке (сначала младший байт)

IX®Stk;

SP=SP-2

INH

3C

1

4

2-7

-

-

-

-

-

-

-

-

PSHY

Сохранить Y

в стеке (сначала младший байт)

IY®Stk;

SP=SP-2

INH

18 3C

2

5

2-8

-

-

-

-

-

-

-

-

PULA

Извлечь A из стека

SP=SP+1;

A¬Stk

A INH

32

1

4

2-9

-

-

-

-

-

-

-

-

PULB

Извлечь B из стека

SP=SP+1;

B¬Stk

B INH

33

1

4

2-9

-

-

-

-

-

-

-

-

PULX

Извлечь X из стека (сначала старший байт)

SP=SP+2;

IX¬Stk

INH

38

1

45

2-10

-

-

-

-

-

-

-

-

PULY

Извлечь Y из стека (сначала старший байт)

SP=SP+2;

IY¬Stk

INH

18 38

2

56

2-10

-

-

-

-

-

-

-

-

ROL

Циклический

¬

EXT

79

hh ll

3

6

5-8

-

-

-

-

ê

ê

ê

ê

(оп.)

сдвиг влево

¬¬š

IND,X

69

ff

2

6

6-3

C b7 b0 C

IND,Y

18 69

ff

3

7

7-3

ROLA

A INH

49

1

2

2-1

ROLB

B INH

59

1

2

2-1

ROR

Циклический

®

EXT

76

hh ll

3

6

5-8

-

-

-

-

ê

ê

ê

ê

(оп.)

сдвиг вправо

™®®˜

IND,X

66

ff

2

6

6-3

C b7 b0 C

IND,Y

18 66

ff

3

7

7-3

RORA

A INH

46

1

2

2-1

RORB

B INH

56

1

2

2-1

RTI

Возврат из прерывания

См. спец. операции

INH

3B

1

12

2-14

ê

ê

ê

ê

ê

ê

ê

ê

RTS

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

См. спец. операции

INH

39

1

5

2-12

-

-

-

-

-

-

-

-

SBA

Вычитание

B из A

A-B®A

INH

10

1

2

2-1

-

-

-

-

ê

ê

ê

ê

SBCA

Вычитание

A-M-C®A

A IMM

82

ii

2

2

3-1

-

-

-

-

ê

ê

ê

ê

(оп.)

из A с учетом

A DIR

92

dd

2

3

4-1

флага C

A EXT

B2

hh ll

3

4

5-2

A IND,X

A2

ff

2

4

6-2

A IND,Y

18 A2

ff

3

5

7-2

SBCB

Вычитание

B-M-C®B

B IMM

C2

ii

2

2

3-1

-

-

-

-

ê

ê

ê

ê

(оп.)

из B с учетом

B DIR

D2

dd

2

3

4-1

флага C

B EXT

F2

hh ll

3

4

5-2

B IND,X

E2

ff

2

4

6-2

B IND,Y

18 E2

ff

3

5

7-2

SEC

Установить флаг переноса

1®C

INH

0D

1

2

2-1

-

-

-

-

-

-

-

1

SEI

Установить маску прерываний

1®I

INH

0F

1

2

2-1

-

-

-

1

-

-

-

-

SEV

Установить флаг переполнения

1®V

INH

0B

1

2

2-1

-

-

-

-

-

-

1

-

STAA

Сохранение

A®M

A DIR

97

dd

2

3

4-2

-

-

-

-

ê

0

-

(оп.)

значение A

A EXT

B7

hh ll

3

4

5-3

в памяти

A IND,X

A7

ff

2

4

6-5

A IND,Y

18 A7

ff

3

5

7-5

STAB

Сохранение

B®M

B DIR

D7

dd

2

3

4-2

-

-

-

-

ê

0

-

(оп.)

значение B

B EXT

F7

hh ll

3

4

5-3

в памяти

B IND,X

E7

ff

2

4

6-5

B IND,Y

18 E7

ff

3

5

7-5

STD

Сохранение D

M®A;

DIR

DD

dd

2

4

4-4

-

-

-

-

ê

ê

0

-

(оп.)

в памяти

M+1®B

EXT

FD

hh ll

3

5

5-5

IND,X

ED

ff

2

5

6-8

IND,Y

18 ED

ff

3

6

7-7

STOP

Останов внутреннего таймера

INH

CF

1

2

2-1

-

-

-

-

-

-

-

-

STS

Сохранение SP

SP®M:M+1

DIR

9F

dd

2

4

4-4

-

-

-

-

ê

ê

0

-

(оп.)

в памяти

EXT

BF

hh ll

3

5

5-5

IND,X

AF

ff

2

5

6-8

IND,Y

18 AF

ff

3

6

7-7

STX

Сохранение

IX®M:M+1

DIR

DF

dd

2

4

4-4

-

-

-

-

ê

ê

0

-

(оп.)

индексного

EXT

FF

hh ll

3

5

5-5

регистра X

IND,X

EF

ff

2

5

6-8

в памяти

IND,Y

CD EF

ff

3

6

7-7

STY

Сохранение

IY®M:M+1

DIR

18 DF

dd

3

5

4-6

-

-

-

-

ê

ê

0

-

(оп.)

индексного

EXT

18 FF

hh ll

4

6

5-7

регистра X

IND,X

1A EF

ff

3

6

6-9

в памяти

IND,Y

18 EF

ff

3

6

7-7

SUBA

Вычитание

A-M®A

A IMM

80

ii

2

2

3-1

-

-

-

-

ê

ê

ê

ê

(оп.)

значения

A DIR

90

dd

2

3

4-1

в памяти

A EXT

B0

hh ll

3

4

5-2

из A

A IND,X

A0

ff

2

4

6-2

A IND,Y

18 A0

ff

3

5

7-2

SUBB

Вычитание

B-M®B

B IMM

C0

ii

2

2

3-1

-

-

-

-

ê

ê

ê

ê

(оп.)

значения

B DIR

D0

dd

2

3

4-1

в памяти

B EXT

F0

hh ll

3

4

5-2

из A

B IND,X

E0

ff

2

4

6-2

B IND,Y

18 E0

ff

3

5

7-2

SUBD

Вычитание

D-M:M+1

IMM

83

jj kk

3

4

3-3

-

-

-

-

ê

ê

ê

ê

(оп.)

значения

®D

DIR

93

dd

2

5

4-7

в памяти

EXT

B3

hh ll

3

6

5-10

из D

IND,X

A3

ff

2

6

6-10

IND,Y

18 A3

ff

3

7

7-8

SWI

Программное прерывание

См. спец. операции

INH

3F

1

14

2-15

-

-

-

1

-

-

-

-

TAB

Пересылка

из A в B

A®B

INH

16

1

2

2-1

-

-

-

-

½

½

0

-

TAP

Пересылка

из A в CCR

A®CCR

INH

06

1

2

2-1

½

¯

½

½

½

½

½

½

TBA

Пересылка

из B в A

B®A

INH

17

1

2

2-1

-

-

-

-

½

½

0

-

TEST

ТЕСТ

(только в режиме теста)

Счет шины адреса

INH

00

1

**

2-20

-

-

-

-

-

-

-

-

TPA

Пересылка

из CCR в A

CCR®A

INH

07

1

2

2-1

-

-

-

-

-

-

-

-

TST

Тест значения

M-0

EXT

7D

hh ll

3

6

5-9

-

-

-

-

½

½

0

0

(оп.)

в памяти на 0

IND,X

6D

ff

2

6

6-4

или отрицательное значение

IND,Y

18 6D

ff

3

7

7-4

TSTA

Тест A на 0 или отрицательное значение

A-0

A INH

4D

1

2

2-1

-

-

-

-

½

½

0

0

TSTB

Тест B на 0 или отрицательное значение

B-0

B INH

5D

1

2

2-1

-

-

-

-

½

½

0

0

TSX

Пересылка

из SP в X

SP+1®IX

INH

30

1

3

2-3

-

-

-

-

-

-

-

-

TSY

Пересылка

из SP в Y

SP+1®IY

INH

18 30

2

4

2-5

-

-

-

-

-

-

-

-

TXS

Пересылка

из X в SP

IX-1®SP

INH

35

1

3

2-2

-

-

-

-

-

-

-

-

TYS

Пересылка

из Y в SP

IY-1®SP

INH

18 35

2

4

2-4

-

-

-

-

-

-

-

-

WAI

Ожидание прерывания

Сохранить регистры в стеке и ждать

INH

3E

1

***

2-16

-

-

-

-

-

-

-

-

XGDX

Обмен D и X

IX®D;D®IX

INH

8F

1

3

2-2

-

-

-

-

-

-

-

-

XGDY

Обмен D и Y

IY®D;D®IY

INH

18 8F

2

4

2-4

-

-

-

-

-

-

-

-

* Все команды расписаны по циклам в таблицах с 10-2 по 10-8, ссылки на строки этих таблиц присутствуют в столбце “Тип поциклового выполнения”. Например, ссылка 2-4 означает строку 2-4 таблицы 10-2.

** Бесконечно или до тех пор, пока не произойдет сброс.

*** Используются 12 циклов, после чего устанавливается состояние ожидания на целое число циклов до возникновения прерывания. После возникновения прерывания требуется еще 2 цикла. Итого-14+n циклов, где n-количество циклов, в течение которых микроконтроллер находился в состоянии ожидания.

dd =8-разрядный прямой адресс ($0000-$00FF); старший байт считается=$00;

ff =8-разрядное смещение относительно 16-разрядного адреса;

hh =старший байт 16-разрядного расширенного адреса;

ii =один байт данных;

jj =старший байт 16-разрядных данных;

kk =младший байт 16-разрядных данных;

ll =младший байт 16-разрядного расширенного адреса;

mm =8-разрядная маска (устанавливает биты, на которые будет оказано воздействие);

rr =8-разрядное знаковое смещение от $80 (-128) до $7F (+127) относительно текущего значения программного счетчика.

Таблица 10-1. Команды MC68HC11E9, режимы адресации и время выполнения.

JSR Переход на подпрограмму.

ì

Основная

ü

ï

программа

ï

DIR

í

PC

$9D=JSR

ï

ï

dd

ï

î

RTN

След. ком.

ï

ì

Основная

ï

ï

программа

ï

IND, X

í

PC

$AD=JSR

ï

ï

ff

ï

î

RTN

След. ком.

ï

SP

Стек

ì

Основная

ï

®SP-2

ï

программа

ý

Þ

SP-1

RTNH

IND, Y

í

PC

$18=преф.

ï

SP

RTNL

ï

$AD=JSR

ï

ï

ff

ï

î

RTN

След. ком.

ï

ì

Основная

ï

ï

программа

ï

EXT

í

PC

$BD=JSR

ï

ï

hh

ï

ï

ll

ï

î

RTN

След. ком.

þ

BSR Ветвление на подпрограмму.

Основная

программа

SP

Стек

PC

$8D=BSR

®SP-2

rr

Þ

SP-1

RTNH

RTN

След. ком.

SP

RTNL

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

Основная

SP

Стек

программа

SP

PC

$39=RTS

Þ

SP+1

RTNH

®SP+2

RTNL

SWI Программное прерывание.

Основная

SP

Стек

программа

®SP-9

PC

$3F=SWI

Þ

SP-8

CCR

SP-7

B

SP-6

A

SP-5

XH

SP-4

XL

SP-3

YH

SP-2

YL

SP-1

RTNH

SP

RTNL

WAI Ожидание прерывания.

Основная

SP

Стек

программа

®SP-9

PC

$3E=WAI

Þ

SP-8

CCR

SP-7

B

SP-6

A

SP-5

XH

SP-4

XL

SP-3

YH

SP-2

YL

SP-1

RTNH

SP

RTNL

RTI Возврат из прерывания.

Основная

SP

Стек

программа

SP

PC

$3B=RTI

Þ

SP+1

CCR

SP+2

B

SP+3

A

SP+4

XH

SP+5

XL

SP+6

YH

SP+7

YL

SP+8

RTNH

®SP+9

RTNL

JMP Переход.

ì

Основная

ï

программа

ï

PC

$6E=JMP

IND, X

í

ff

ï

·

ï

·

ï

·

î

X+ff

След. ком.

ì

Основная

ï

программа

ï

PC

$18=преф.

ï

$6E=JMP

IND, Y

í

ff

ï

·

ï

·

ï

·

î

Y+ff

След. ком.

ì

Основная

ï

программа

ï

PC

$7E=JMP

ï

hh

EXT

í

ll

ï

·

ï

·

ï

·

î

hh ll

След. ком.

Обозначения:

RTN =адрес следующей команды основной программы, которая будет выполняться после возврата из подпрограммы.

RTNH =старший байт адреса возврата.

RTNL =младший байт адреса возврата.

® =указатель стека после выполнения команды.

dd =8-разрядный прямой адрес ($0000-$00FF); старший байт считается=$00;

ff =8-разрядное смещение от $00 до $FF, прибавляемое к содержимому индексного регистра.

hh =старший байт 16-разрядного расширенного адреса.

ll =младший байт 16-разрядного расширенного адреса.

rr =8-разрядное знаковое смещение от $80 (-128) до $7F (+127) относительно текущего значения программного счетчика.

Рисунок 10-2. Специальные операции.

Номер ссылки*

Команды

Циклов

#

цикла

Шина адреса

Линия

R/W/

Шина данных

2-1

ABA, ASLA, ASLB,

2

1

Адрес команды

1

Код команды

ASRA, ASRB, CBA, CLC, CLI, CLRA, CLRB, CLV, COMA, COMB, DAA, DECA, DECB, INCA, INCB, LSLA, LSLB, LSRA, LSRB, NEGA, NEGB, NOP, ROLA, ROLB, RORA, RORB, SBA, SEC, SEI, SEV, STOP, TAB, TAP, TBA, TPA, TSTA, TSTB

2

Адрес команды+1

1

Незначащие данные

2-2

ABX, ASLD, DEX,

3

1

Адрес команды

1

Код команды

INX, LSLD, LSRD,

2

Адрес команды+1

1

Незначащие данные

TXS, XGDX

3

$FFFF

1

Незначащие данные

2-3

DES, INS, TSX

3

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Незначащие данные

3

Предыдуее зн. SP

1

Незначащие данные

2-4

ABY, DEY, INY, TYS, XGDY

4

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Незначащие данные

4

$FFFF

Незначащие данные

2-5

TSY

4

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$30)

3

Адрес команды+2

1

Незначащие данные

4

Значение SP

1

Незначащие данные

2-6

PSHA, PSHB

3

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Незначащие данные

3

Значение SP

0

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

2-7

PSHX

4

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Незначащие данные

3

Значение SP

0

Младший байт IX

4

Значение SP-1

0

Старший байт IX

2-8

PSHY

5

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$3C)

3

Адрес команды+2

1

Незначащие данные

4

Значение SP

0

Младший байт IY

5

Значение SP-1

0

Старший байт IY

2-9

PULA, PULB

4

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Незначащие данные

3

Значение SP

1

Незначащие данные

4

Значение SP+1

1

Данные из стека

2-10

PULX

5

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Незначащие данные

3

Значение SP

1

Незначащие данные

4

Значение SP+1

1

Данные из стека (старший байт)

5

Значение SP+2

1

Данные из стека (младший байт)

2-11

PULY

6

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$38)

3

Адрес команды+2

1

Незначащие данные

4

Значение SP

1

Незначащие данные

5

Значение SP+1

1

Старший байт IY из стека

6

Значение SP+2

1

Младший байт IY из стека

2-12

RTS

5

1

Адрес команды

1

Код команды ($39)

2

Адрес команды+1

1

Незначащие данные

3

Значение SP

1

Незначащие данные

4

Значение SP+1

1

Адрес следующей команды (старший байт)

5

Значение SP+2

1

Адрес следующей команды (младший байт)

2-13

MUL

10

1

Адрес команды

1

Код команды ($39)

2

Адрес команды+1

1

Незначащие данные

3-10

$FFFF

1

Незначащие данные

2-14

RTI

12

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Незначащие данные

3

Значение SP

1

Незначащие данные

4

Значение SP+1

1

CCR из стека

5

Значение SP+2

1

B из стека

6

Значение SP+3

1

A из стека

7

Значение SP+4

1

Старший байт IX из стека

8

Значение SP+5

1

Младший байт IX из стека

9

Значение SP+6

1

Старший байт IY из стека

10

Значение SP+7

1

Младший байт IY из стека

11

Значение SP+8

1

Адрес следующей команды (старший байт)

12

Значение SP+9

1

Адрес следующей команды (младший байт)

2-15

SWI

14

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Незначащие данные

3

Значение SP

0

Адрес возврата (младший байт)

4

Значение SP-1

0

Адрес возврата (старший байт)

5

Значение SP-2

0

Младший байт IY

6

Значение SP-3

0

Старший байт IY

7

Значение SP-4

0

Младший байт IX

8

Значение SP-5

0

Старший байт IX

9

Значение SP-6

0

A из стека

10

Значение SP-7

0

B из стека

11

Значение SP-8

0

CCR

12

Значение SP-8

1

Незначащие данные

13

Адрес вектора SWI (первое значение)

1

Адрес подпрограммы обработки SWI (старший байт)

14

Адрес вектора SWI+1 (второе значение)

1

Адрес подпрограммы обработки SWI (младший байт)

2-16

WAI

14

1

Адрес команды

1

Код команды

+n

2

Адрес команды+1

1

Незначащие данные

3

Значение SP

0

Адрес возврата (младший байт)

4

Значение SP-1

0

Адрес возврата (старший байт)

5

Значение SP-2

0

Младший байт IY

6

Значение SP-3

0

Старший байт IY

7

Значение SP-4

0

Младший байт IX

8

Значение SP-5

0

Старший байт IX

9

Значение SP-6

0

A из стека

10

Значение SP-7

0

B из стека

11

Значение SP-8

0

CCR

12- n+12

Значение SP-8

1

Незначащие данные

n+13

Адрес вектора (первое значение)

1

Адрес подпрограммы обработки (старший байт)

n+14

Адрес вектора+1 (второе значение)

1

Адрес подпрограммы обработки (младший байт)

2-17

FDIV, IDIV

41

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Незначащие данные

3-41

$FFFF

1

Незначащие данные

2-18

Неверный код

15

1

Адрес команды

1

Код команды (неверный)

команды из

2

Адрес команды+1

1

Незначащие данные

1 страницы

3

$FFFF

1

Незначащие данные

4

Значение SP

0

Адрес возврата (младший байт)

5

Значение SP-1

0

Адрес возврата (старший байт)

6

Значение SP-2

0

Младший байт IY

7

Значение SP-3

0

Старший байт IY

8

Значение SP-4

0

Младший байт IX

9

Значение SP-5

0

Старший байт IX

10

Значение SP-6

0

A из стека

11

Значение SP-7

0

B из стека

12

Значение SP-8

1

CCR

13

Значение SP-8

1

Незначащие данные

14

Адрес вектора (первое значение)

1

Адрес подпрограммы обработки (старший байт)

15

Адрес вектора+1 (второе значение)

1

Адрес подпрограммы обработки (младший байт)

2-19

Неверный код команды из 2, 3

16

1

Адрес команды

1

Код команды (верный префикс)

или 4 страницы

2

Адрес команды+1

1

Код команды (неверный)

3

Адрес команды+2

1

Незначащие данные

4

$FFFF

1

Незначащие данные

5

Значение SP

0

Адрес возврата (младший байт)

6

Значение SP-1

0

Адрес возврата (старший байт)

7

Значение SP-2

0

Младший байт IY

8

Значение SP-3

0

Старший байт IY

9

Значение SP-4

0

Младший байт IX

10

Значение SP-5

0

Старший байт IX

11

Значение SP-6

0

A из стека

12

Значение SP-7

0

B из стека

13

Значение SP-8

1

CCR

14

Значение SP-8

1

Незначащие данные

15

Адрес вектора (первое значение)

1

Адрес подпрограммы обработки (старший байт)

16

Адрес вектора+1 (второе значение)

1

Адрес подпрограммы обработки (младший байт)

2-20

TEST

бес

1

Адрес команды

1

Код команды ($00)

ко

2

Адрес команды+1

1

Незначащие данные

неч

3

Адрес команды+1

1

Незначащие данные

но

4

Адрес команды+2

1

Незначащие данные

5-n

предыдущий адрес+1

1

Незначащие данные

* Номера ссылок даются как и в таблице 10-1.

Таблица 10-2. Поцикловое описание команд-неявная адресация.

Номер ссылки*

Команды

Циклов

#

цикла

Шина адреса

Линия

R/W

Шина данных

3-1

ADCA, ADCB,

2

1

Адрес команды

1

Код команды

ADDB, ANDA, ANDB, BITA, BITB, CMPA, CMPB, EORA, EORB, LDAA, LDAB, ORAA, ORAB, SBCA, SBCB, SUBA, SUBB

2

Адрес команды+1

1

Данные

3-2

LDD, LDS, LDX

3

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Данные (старший байт)

3

Адрес команды+2

1

Данные (младший байт)

3-3

ADDD, CPX, SUBD

4

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Данные (старший байт)

3

Адрес команды+2

1

Данные (младший байт)

4

$FFFF

1

Незначащие данные

3-4

LDY

4

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Данные (старший байт)

4

Адрес команды+3

1

Данные (младший байт)

3-5

CPD, CPY

5

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Данные (старший байт)

4

Адрес команды+3

1

Данные (младший байт)

5

$FFFF

1

Незначащие данные

* Номера ссылок даются как и в таблице 10-1.

Таблица 10-3. Поцикловое описание команд-непосредственная адресация.

Номер ссылки*

Команды

Циклов

#

цикла

Шина адреса

Линия

R/W

Шина данных

4-1

ADCA, ADCB,

3

1

Адрес команды

1

Код команды

ADDA, ADDB, ANDA, ANDB, BITA, BITB,

2

Адрес команды+1

1

Адрес операнда (младший байт; старший байт=$00)

CMPA, CMPB, EORA, EORB, LDAA, LDAB, ORAA, ORAB, SBCA, SBCB, SUBA, SUBB

3

Адрес операнда

1

Данные

4-2

STAA, STAB

3

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (младший байт; старший байт=$00)

3

Адрес операнда

0

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

4-3

LDD, LDS, LDX

4

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (младший байт; старший байт=$00)

3

Адрес операнда

1

Данные (старший байт)

4

Адрес операнда+1

1

Данные (младший байт)

4-4

STD, STS, STX

4

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (младший байт; старший байт=$00)

3

Адрес операнда

0

Данные из регистра (старший байт)

4

Адрес операнда+1

0

Данные из регистра (младший байт)

4-5

LDY

5

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$DE)

3

Адрес команды+2

1

Адрес операнда (младший байт; старший байт=$00)

4

Адрес операнда

1

Данные (старший байт)

5

Адрес операнда+1

1

Данные (младший байт)

4-6

STY

5

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$DF)

3

Адрес команды+2

1

Адрес операнда (младший байт; старший байт=$00)

4

Адрес операнда

0

Данные (старший байт)

5

Адрес операнда+1

0

Данные (младший байт)

4-7

ADDD, CPX, SUBD

5

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (младший байт; старший байт=$00)

3

Адрес операнда

1

Данные (старший байт)

4

Адрес операнда+1

1

Данные (младший байт)

5

$FFFF

1

Незначащие данные

4-8

JSR

5

1

Адрес команды

1

Код команды ($9D)

2

Адрес команды+1

1

Адрес операнда (младший байт; старший байт=$00)

3

Адрес подпрограммы

1

Первая команда подпрограммы

4

Значение SP

0

Адрес возврата (младший байт)

5

Значение SP-1

0

Адрес возврата (старший байт)

4-9

CPD, CPY

6

1

Адрес команды

1

Код команды (префикс)

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Адрес операнда (младший байт; старший байт=$00)

4

Адрес операнда

1

Данные (старший байт)

5

Адрес операнда+1

1

Данные (младший байт)

6

$FFFF

1

Незначащие данные

4-10

BCLR, BSET

6

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (младший байт; старший байт=$00)

3

Адрес операнда

1

Исходные данные

4

Адрес команды+2

1

Байт маски

5

$FFFF

1

Незначащие данные

6

Адрес операнда

0

Результирующие данные

4-11

BRCLR, BRSET

6

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (младший байт; старший байт=$00)

3

Адрес операнда

1

Исходные данные

4

Адрес команды+2

1

Байт маски

5

Адрес команды+3

1

Смещение ветвления

6

$FFFF

1

Незначащие данные

* Номера ссылок даются как и в таблице 10-1.

Таблица 10-4. Поцикловое описание команд-прямая адресация.

Номер ссылки*

Команды

Циклов

#

цикла

Шина адреса

Линия

R/W

Шина данных

5-1

JMP

3

1

Адрес команды

1

Код команды ($7E)

2

Адрес команды+1

1

Адрес перехода (старший байт)

3

Адрес команды+2

1

Адрес перехода (младший байт)

5-2

ADCA, ADCB,

4

1

Адрес команды

1

Код команды

ADDA, ADDB, ANDA, ANDB,

2

Адрес команды+1

1

Адрес операнда (старший байт)

BITA, BITB, CMPA, CMPB, EORA,

3

Адрес команды+2

1

Адрес операнда (младший байт)

EORB, LDAA, LDAB, ORAA, ORAB, SBCA, SBCB, SUBA, SUBB

4

Адрес операнда

1

Данные

5-3

STAA, STAB

4

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (старший байт)

3

Адрес команды+2

1

Адрес операнда (младший байт)

4

Адрес операнда

0

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

5-4

LDD, LDS, LDX

5

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (старший байт)

3

Адрес команды+2

1

Адрес операнда (младший байт)

4

Адрес операнда

1

Данные (старший байт)

5

Адрес операнда+1

1

Данные (младший байт)

5-5

STD, STS, STX

5

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (старший байт)

3

Адрес команды+2

1

Адрес операнда (младший байт)

4

Адрес операнда

0

Данные из регистра (старший байт)

5

Адрес операнда+1

0

Данные из регистра (младший байт)

5-6

LDY

6

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$FE)

3

Адрес команды+2

1

Адрес операнда (старший байт)

4

Адрес команды+3

1

Адрес операнда (младший байт)

5

Адрес операнда

1

Данные (старший байт)

6

Адрес операнда+1

1

Данные (младший байт)

5-7

STY

6

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$FF)

3

Адрес команды+2

1

Адрес операнда (старший байт)

4

Адрес команды+3

1

Адрес операнда (младший байт)

5

Адрес операнда

0

Данные (старший байт)

6

Адрес операнда+1

0

Данные (младший байт)

5-8

ASL, ASR, CLR,

6

1

Адрес команды

1

Код команды

COM, DEC, INC, LSL, LSR, NEG,

2

Адрес команды+1

1

Адрес операнда (старший байт)

ROL, ROR

3

Адрес команды+2

1

Адрес операнда (младший байт)

4

Адрес операнда

1

Исходные данные

5

$FFFF

1

Незначащие данные

6

Адрес операнда

0

Результирующие данные

5-9

TST

6

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (старший байт)

3

Адрес команды+2

1

Адрес операнда (младший байт)

4

Адрес операнда

1

Исходные данные

5

$FFFF

1

Незначащие данные

6

$FFFF

1

Незначащие данные

5-10

ADDD, CPX, SUBD

6

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Адрес операнда (старший байт)

3

Адрес команды+2

1

Адрес операнда (младший байт)

4

Адрес операнда

1

Данные (старший байт)

5

Адрес операнда+1

1

Данные (младший байт)

6

$FFFF

1

Незначащие данные

5-11

CPD, CPY

7

1

Адрес команды

1

Код команды (префикс)

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Адрес операнда (старший байт)

4

Адрес команды+3

1

Адрес операнда (младший байт)

5

Адрес операнда

1

Данные (старший байт)

6

Адрес операнда+1

1

Данные (младший байт)

7

$FFFF

1

Незначащие данные

5-12

JSR

6

1

Адрес команды

1

Код команды ($9D)

2

Адрес команды+1

1

Адрес подпрограммы (старший байт)

3

Адрес команды+2

1

Адрес подпрограммы (младший байт)

4

Адрес подпрограммы

1

Первая команда подпрограммы

5

Значение SP

0

Адрес возврата (младший байт)

6

Значение SP-1

0

Адрес возврата (старший байт)

* Номера ссылок даются как и в таблице 10-1.

Таблица 10-5. Поцикловое описание команд-расширенная адресация.

Номер ссылки*

Команды

Циклов

#

цикла

Шина адреса

Линия

R/W

Шина данных

6-1

JMP

3

1

Адрес команды

1

Код команды ($6E)

2

Адрес команды+1

1

Смещение

3

$FFFF

1

Незначащие данные

6-2

ADCA, ADCB,

4

1

Адрес команды

1

Код команды

ADDA, ADDB,

2

Адрес команды+1

1

Смещение

ANDA, ANDB,

3

$FFFF

1

Незначащие данные

BITA, BITB, CMPA, CMPB, EORA,EORB, LDAA, LDAB, ORAA, ORAB, SBCA, SBCB, SUBA, SUBB

4

(IX)+смещение

1

Данные

6-3

ASL, ASR, CLR,

6

1

Адрес команды

1

Код команды

COM, DEC, INC,

2

Адрес команды+1

1

Смещение

LSL, LSR, NEG,

3

$FFFF

1

Незначащие данные

ROL, ROR

4

(IX)+смещение

1

Исходные данные

5

$FFFF

1

Незначащие данные

6

(IX)+смещение

0

Результирующие данные

6-4

TST

6

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Смещение

3

$FFFF

1

Незначащие данные

4

(IX)+смещение

1

Исходные данные

5

$FFFF

1

Незначащие данные

6

$FFFF

1

Незначащие данные

6-5

STAA, STAB

4

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Смещение

3

$FFFF

1

Незначащие данные

4

(IX)+смещение

0

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

6-6

LDD, LDS, LDX

5

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Смещение

3

$FFFF

1

Незначащие данные

4

(IX)+смещение

1

Данные (старший байт)

5

(IX)+смещение+1

1

Данные (младший байт)

6-7

LDY

6

1

Адрес команды

1

Код команды (префикс=$1A)

2

Адрес команды+1

1

Код команды (второй байт=$EE)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IX)+смещение

1

Данные (старший байт)

6

(IX)+смещение+1

1

Данные (младший байт)

6-8

STD, STS, STX

5

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Смещение

3

$FFFF

1

Незначащие данные

4

(IX)+смещение

0

Данные из регистра (старший байт)

5

(IX)+смещение+1

0

Данные из регистра (младший байт)

6-9

STY

6

1

Адрес команды

1

Код команды (префикс=$1A)

2

Адрес команды+1

1

Код команды (второй байт=$EF)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IX)+смещение

0

Данные (старший байт)

6

(IX)+смещение+1

0

Данные (младший байт)

6-10

ADDD, CPX, SUBD

6

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Смещение

3

$FFFF

1

Незначащие данные

4

(IX)+смещение

1

Данные (старший байт)

5

(IX)+смещение+1

1

Данные (младший байт)

6

$FFFF

1

Незначащие данные

6-11

CPD, CPY

7

1

Адрес команды

1

Код команды (префикс)

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IX)+смещение

1

Данные (старший байт)

6

(IX)+смещение+1

1

Данные (младший байт)

7

$FFFF

1

Незначащие данные

6-12

JSR

6

1

Адрес команды

1

Код команды ($AD)

2

Адрес команды+1

1

Смещение

3

$FFFF

1

Незначащие данные

4

(IX)+смещение

1

Первая команда подпрограммы

5

Значение SP

0

Адрес возврата (младший байт)

6

Значение SP-1

0

Адрес возврата (старший байт)

6-13

BCLR, BSET

7

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Смещение

3

$FFFF

1

Незначащие данные

4

(IX)+смещение

1

Исходные данные

5

Адрес команды+2

1

Байт маски

6

$FFFF

1

Незначащие данные

7

(IX)+смещение

0

Результирующие данные

6-14

BRCLR, BRSET

7

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Смещение

3

$FFFF

1

Незначащие данные

4

(IX)+смещение

1

Исходные данные

5

Адрес команды+2

1

Байт маски

6

Адрес команды+3

1

Смещение ветвления

7

$FFFF

1

Незначащие данные

* Номера ссылок даются как и в таблице 10-1.

Таблица 10-6. Поцикловое описание команд-индексная адресация через X.

Номер ссылки*

Команды

Циклов

#

цикла

Шина адреса

Линия

R/W

Шина данных

7-1

JMP

4

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$6E)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

7-2

ADCA, ADCB, ADDA, ADDB,

4

1

Адрес команды

1

Код команды (префикс=$18)

ANDA, ANDB, BITA, BITB, CMPA,

2

Адрес команды+1

1

Код команды (второй байт)

CMPB,

3

Адрес команды+2

1

Смещение

EORA,EORB,

4

$FFFF

1

Незначащие данные

LDAA, LDAB, ORAA, ORAB, SBCA, SBCB, SUBA, SUBB

5

(IY)+смещение

1

Данные

7-3

ASL, ASR, CLR,

7

1

Адрес команды

1

Код команды (префикс)

COM, DEC, INC, LSL, LSR, NEG,

2

Адрес команды+1

1

Код команды (второй байт)

ROL, ROR

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IY)+смещение

1

Исходные данные

6

$FFFF

1

Незначащие данные

7

(IY)+смещение

0

Результирующие данные

7-4

TST

7

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$6D)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IY)+смещение

1

Исходные данные

6

$FFFF

1

Незначащие данные

7

$FFFF

1

Незначащие данные

7-5

STAA, STAB

5

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IY)+смещение

0

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

7-6

LDD, LDS, LDX,

6

1

Адрес команды

1

Код команды (префикс)

LDY

2

Адрес команды+1

1

Код команды (второй байт)

2

Адрес команды+2

1

Смещение

3

$FFFF

1

Незначащие данные

4

(IY)+смещение

1

Данные (старший байт)

5

(IY)+смещение+1

1

Данные (младший байт)

7-7

STD, STS, STX,

6

1

Адрес команды

1

Код команды (префикс)

STY

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IY)+смещение

0

Данные из регистра (старший байт)

6

(IY)+смещение+1

0

Данные из регистра (младший байт)

7-8

ADDD, CPX, CPD,

7

1

Адрес команды

1

Код команды (префикс)

CPY, SUBD

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IY)+смещение

1

Данные (старший байт)

6

(IY)+смещение+1

1

Данные (младший байт)

7

$FFFF

1

Незначащие данные

7-9

JSR

7

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт=$AD)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IY)+смещение

1

Первая команда подпрограммы

6

Значение SP

0

Адрес возврата (младший байт)

7

Значение SP-1

0

Адрес возврата (старший байт)

7-10

BCLR, BSET

8

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IY)+смещение

1

Исходные данные

6

Адрес команды+2

1

Байт маски

7

$FFFF

1

Незначащие данные

8

(IY)+смещение

0

Результирующие данные

7-11

BRCLR, BRSET

8

1

Адрес команды

1

Код команды (префикс=$18)

2

Адрес команды+1

1

Код команды (второй байт)

3

Адрес команды+2

1

Смещение

4

$FFFF

1

Незначащие данные

5

(IY)+смещение

1

Исходные данные

6

Адрес команды+2

1

Байт маски

7

Адрес команды+3

1

Смещение ветвления

8

$FFFF

1

Незначащие данные

* Номера ссылок даются как и в таблице 10-1.

Таблица 10-7. Поцикловое описание команд-индексная адресация через Y.

Номер ссылки*

Команды

Циклов

#

цикла

Шина адреса

Линия

R/W

Шина данных

8-1

BCC, BCS, BEQ,

3

1

Адрес команды

1

Код команды

BGE, BGT, BHI,

2

Адрес команды+1

1

Смещение ветвления

BHS, BLE, BLO, BLS, BLT, BMI, BNE, BPL, BRA, BRN, BVC, BVS

3

$FFFF

1

Незначащие данные

8-2

BSR

6

1

Адрес команды

1

Код команды

2

Адрес команды+1

1

Смещение ветвления

3

$FFFF

1

Незначащие данные

4

Адрес подпрограммы

1

Код следующей команды

5

Значение SP

0

Адрес возврата (младший байт)

6

Значение SP-1

0

Адрес возврата (старший байт)

* Номера ссылок даются как и в таблице 10-1.

Таблица 10-8. Поцикловое описание команд-относительная адресация.

Соседние файлы в папке МС68НС11Е9