Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Микропроцессоры.doc
Скачиваний:
524
Добавлен:
13.05.2015
Размер:
2.99 Mб
Скачать
        1. Система инструкций

Инструкции ВМ1 можно разбить на 11 групп:

  1. с одним операндом;

  2. с двумя операндами;

  3. сдвига на 1 разряд;

  4. битовые;

  5. циклического сдвига на nразрядов (1n15);

  6. циклического сдвига и сравнения;

  7. циклического сдвига и слияния;

  8. шифрации;

  9. генерации избыточного кода (CRC);

  10. установки и проверки состояния;

  11. «нет операции».

1) Инструкции с одним операндомимеют два форматаSOR(с использованием РЗУ) иSONR(без использования РЗУ), форматы которых приведены в Табл. 10 .23 и Табл. 10 .24.

15

14 13

12 9

8 5

4 0

SOR

B/W

1 0

К О П

ИСТ, ПРМ

Адрес РЗУ

SONR

B/W

1 1

К О П

ИСТ

ПРМ

Каждая инструкция может работать как с байтом (при B/W= 0), так и со словом (приB/W= 1).

Табл.10.23. ИнструкцииSORс одним операндом

Код операций

Источник, приемник

Код

Мнемо

Операция

Код

Мнемо

Источн.

Приемн.

1100

MOVE

ИСТ ПМН

0000

SORA

РЗУ

Акк

1101

COMP

ИСТ ПМН

0010

SORY

РЗУ

Шина Y

1110

INC

ИСТ+1 ПМН

0011

SORS

РЗУ

Рг.С

1111

NEG

ИСТ+1 ПМН

0100

SOAR

Акк

РЗУ

Примечания:

Рг. D.0 – расширение байта нулями;

Рг. D.S– расширение байта знаком

0110

SODR

Рг. D

РЗУ

0111

SOIR

I

РЗУ

1000

SOZR

0

РЗУ

1001

SOZER

Рг. D.0

РЗУ

1010

SOSER

Рг. D.S

РЗУ

1011

SORR

РЗУ

РЗУ

Табл.10.24. ИнструкцииSONRс одним операндом

Код операций

Источник, приемник

Код

Мнемо

Операция

Код

Мнемо

Источн.

Приемн.

1100

MOVE

ИСТ ПМН

0100

SOA

Акк

1101

COMP

ИСТ ПМН

1100

SOD

Рг. D

1110

INC

ИСТ+1 ПМН

0111

SOI

I

1111

NEG

ИСТ+1  ПМН

1000

SOZ

0

1001

SOZE

Рг. D.0

1010

SOSE

Рг. D.S

00000

NRY

Шина Y

00001

NRA

Акк

00100

NRS

Рг. С

00101

NRAS

Акк, Рг.С

Все однооперандные инструкции передают на шину Yзначение, загружаемое в приемник.

Разряды Z,C,N,OVRрегистра состояний модифицируются, остальные – не меняются.

Единственное ограничение на способ адресации: если Акк и Рг.С определены одновременно в качестве приемников, то невозможно использовать РЗУ в качестве источника.

2) Инструкции с двумя операндамиимеют следующие форматы:

15

14 13

12 9

8 5

4 0

TOR1

B/W

0 0

ИСТ, ИСТ, ПРМ

К О П

Адрес РЗУ

TOR2

B/W

1 0

ИСТ, ИСТ, ПРМ

К О П

Адрес РЗУ

TONR

B/W

1 1

ИСТ, ИСТ

К О П

ПРМ

Табл.10.25. Двухоперандные инструкции типаTOR1,2

ИСТ, ИСТ, ПРМ

К О П

Код

Мнемокод

R

S

ПРМ

Код

Мнемокод

Операция

TOR1

0000

TORAA

РЗУ

Акк

Акк

0000

SUB R

S – R

0010

TORIA

РЗУ

I

Акк

0001

SUB RC

S – R + C

0011

TODRA

Рг.D

РЗУ

Акк

0010

SUB S

R – S

1000

TORAY

РЗУ

Акк

Y

0011

SUB SC

R – S + C

1010

TORIY

РЗУ

I

Y

0100

ADD

R + S

1011

TODRY

Рг.D

РЗУ

Y

0101

ADD C

R + S +C

1100

TORAR

РЗУ

Акк

РЗУ

0110

AND

R & S

1110

TORIR

РЗУ

I

РЗУ

0111

NAND

(R & S)\

1111

TODRR

Рг.D

РЗУ

РЗУ

1000

EXOR

R  S

TOR2

0001

TODAR

Рг.D

Акк

РЗУ

1001

NOR

(R  S)\

0010

TOAIR

Акк

I

РЗУ

1010

OR

R  S

0101

TODIR

Рг.D

I

РЗУ

1011

EXNOR

(R  S)\

Табл. 10.26. Двухоперандные инструкции типаTONR

ИСТ, ИСТ

К О П

ПРМ

Код

Мнемокод

R

S

Код

Мнемокод

Приемник

0001

TODA

Рг.D

Акк

В соответствии с табл. 4

00000

NRI

Y

0010

TOAI

Акк

I

00010

NRA

Акк

0101

TODI

Рг.D

I

00100

NRS

Рг.C

00101

NRAS

Акк, Рг.C

Примечание. ФлагиOVR,N,Z,Cмодифицируются по результатам арифметических операций; в логических операцияхOVR:=C:= 0.

3) Инструкции сдвига на один разряд имеют следующие форматы:

15

14 13

12 9

8 5

4 0

SHFTR

B/W

1 0

ИСТ, ПРМ

К О П

Адрес РЗУ

SHFTNR

B/W

1 1

ИСТ

К О П

ПРМ

При сдвиге модифицируются биты NиZрегистра состояний, а битыCиOVRустанавливаются в «0». Функция NOVR используется при умножении чисел в дополнительном коде.

Рис. 10.81. Выполнение процедур сдвига

Табл. 10.27. Инструкции сдвига на 1 разряд

ИСТ, ПРМ, (ИСТ) (ПРМ)

К О П

Код

Мнемокод

ИСТ

ПРМ

Код

Мнемокод

Направление

Вдвигаемое значение

SHFTR

0110

SHRR

РЗУ

РЗУ

0000

SHUPZ

Влево

0

0111

SHND

Рг.D

РЗУ

0001

SHUP1

Влево

1

SHFTNR

0110

SHA

Акк

0010

SHUPL

Влево

L

0111

SHD

Рг.D

0100

SHDNZ

Вправо

0

00000

NRY

Y

0101

SHDN1

Вправо

1

00001

NRA

Акк

0110

SHDNL

Вправо

L

0111

SHDNC

Вправо

C

1000

SHDNOV

Вправо

NOVR

Табл. 10.28. Управление шинойYи регистром состояния

Операция

Режим

Шина

Рг. С

N

L

Влево

SHUPZ

SHUP1

SHUPL

W= 1

Y[15:0] := ИСТ[14:0].X

ИСТ[14]

ИСТ[15]

W= 0

Y[7:0] := ИСТ[6:0].X

Y[15:8] := ИСТ[7:1]. ИСТ[7]

ИСТ[6]

ИСТ[7]

Вправо

SHDNZ

SHDN1

SHDNL

SHDNC

SHDNOV

W = 1

Y[15:0] := X.ИСТ[15:1]

X

ИСТ[0]

W= 0

Y[7:0] := X.ИСТ[7:1]

Y[15:8] := X.ИСТ[7:1]

X

ИСТ[0]

Примечания. W = 1 – команды работы со словами; W = 0 – команды работы с байтами; Х – вход при сдвиге.

4) Инструкции с битами имеют следующие форматы:

15

14 13

12 9

8 5

4 0

BOR1

B/W

1 1

n

К О П

Адрес РЗУ

BOR2

B/W

1 0

n

К О П

Адрес РЗУ

BONR

B/W

1 1

n

1 1 0 0

К О П

Табл. 10.29. Инструкции с битами форматаBOR1,2

Код

Мнемокод

Операция

Шина Y

Z-разряд РгС*)

BOR1

1101

SETNR

Устан. РЗУ в «1»

Yi  РЗУi, i  n; Yn  1

0

1110

RSTNR

Сброс в «0»

Yi  РЗУi, i  n; Yn  0

U

1111

TSTNR

Проверка РЗУ

Yi  0, i  n; Yn  РЗУn

U

BOR2

1100

LD2NR

2n  РЗУ

Yi  0, i  n; Yn  1

0

1101

LDC2NR

(2n)\  РЗУ

Yi  1, i  n; Yn  0

0

1110

A2NR

РЗУ + 2n  РЗУ

Y  РЗУ + 2n

U

1111

S2NR

РЗУ - 2n  РЗУ

Y  РЗУ - 2n

U

*)РазрядыL,Fl(1:3) не меняются, C, OVR – устанавливаются в «0»

Табл. 10.30. Инструкции с битами форматаBONR

Код

Мнемокод

Операция

Шина Y

РгС

Z

C, OVR

00000

TSTNA

Проверка Акк

Yi  0, i  n; Yn  Аккn

U

0

00001

RSTNA

Сброс в «0» Акк

Yi  Аккi, i  n; Yn  0

U

0

00010

SET NA

Устан. в «1» Акк

Yi  Аккi, i  n; Yn  1

0

0

00100

A2NA

Акк + 2n  Акк

Y  Акк + 2n

U

U

00101

S2NA

Акк - 2n  Акк

Y  Акк - 2n

U

U

00110

LD2NA

2n  Акк

Yi  0, i  n; Yn  1

0

0

00111

LDC2NA

(2n)\  Акк

Yi  1, i  n; Yn  0

0

0

10000

TSTND

Проверка РгD

Yi  0, i  n; Yn  РгDn

U

0

10001

RSTND

Сброс в «0» РгD

Yi  РгDi, i  n; Yn  0

U

0

10010

SETND

Устан. в «1» РгD

Yi  РгDi, i  n; Yn  1

0

0

10100

A2NDY

РгD + 2n  Y

Yi  РгDi + 2n

U

U

10101

S2NDY

РгD - 2n  Y

Yi  РгDi - 2n

U

U

10110

LS2NY

2n  Y

Yi  0, i  n; Yn  1

0

0

10111

LDC2NY

(2n)\  Y

Yi  1, i  n; Yn  0

0

0

В табл. 8 и 9 «проверка» – это установка признака Zв состояние, определяемое значениемn-го разряда адресуемого объекта. «Установка» и «сброс» – при сохранении всех разрядов, кромеn-го.

5) Инструкции циклических сдвигов на n разрядов имеют следующие форматы:

15

14 13

12 9

8 5

4 0

ROTR1

B/W

0 0

n

ИСТ, ПРМ

Адрес РЗУ

ROTR2

B/W

0 1

n

ИСТ, ПРМ

Адрес РЗУ

ROTNR

B/W

1 1

n

1 1 0 1

ИСТ, ПРМ

Операнд источника циклически сдвигается на nпозиций (0n15) в сторонустарших разрядов(влево), результат сдвига помещается в приемник и/или на шинуY. В режиме слова сдвигаются все биты (что соответствует сдвигу вправо на (16 –n) позиций. В режиме байта сдвигаются только биты (7:0), а сдвиг наnвлево эквивалентен сдвигу на (8 -n) вправо. БитыNиZмодифицируются, а битыCиOVRустанавливаются в «0».

Табл. 10.31. Инструкции циклического сдвига

Формат

Код

Мнемокод

ИСТ

ПРМ

ROTR1

1100

RTRA

РЗУ

Акк

1110

RTRY

РЗУ

Шина Y

1111

RTRR

РЗУ

РЗУ

ROTR2

0000

RTAR

Акк

РЗУ

0001

RTDR

РгD

РЗУ

ROTNR

11000

RTDY

РгD

Шина Y

11001

RTDA

РгD

Акк

11100

RTAY

Акк

Шина Y

11101

RTAA

Акк

Акк

Режим B/W

Шина Y

N регистра РгC

0 (байт)

Yi  ИСТ(i-n) mod 16

ИСТ(15-n)

1 (слово)

Yi  ИСТ(i-n) mod 8

Для i = 1.. 7

ИСТ(8-n)

6) Инструкции циклического сдвига и сравнения:

15

14 13

12 9

8 5

4 0

ROTC

B/W

0 1

n

ИСТ, ПРМ, МАСКА

Адрес РЗУ

Инструкция осуществляет поразрядное сравнение двух 16-разрядных векторов, маскированных вектором маски, причем один из входных векторов предварительно (перед маскированием) сдвигается на заданное число разрядов ().

Рис. 10.82. Сдвиг и сравнение

Единичное значение разряда маски исключают из сравнения соответствующие разряды операндов (оба при сравнении равны «0»). Биты N,Zрегистра состояний модифицируются, аOVRиC– сбрасываются в «0».

Табл. 10.32. Инструкции циклического сдвига и сравнения

Код [8 : 5]

Мнемокод

Сдвигаемый ИСТ

Несдвигаемый ИСТ, ПРМ

Маска

0010

CDAI

РгD

Акк

I

0011

CDRI

РгD

РЗУ

I

0100

CDRA

РгD

РЗУ

Акк

0101

CRAI

РЗУ

Акк

I

7) Инструкции циклического сдвига и слияния:

15

14 13

12 9

8 5

4 0

ROTM

B/W

0 1

n

ИСТ, ПРМ, МАСКА

Адрес РЗУ

Сдвигаемый операнд U циклически сдвигается на n позиций в сторону старших разрядов, затем с помощью маски формируется результат: в качестве его i-го разряда берется i-й разряд сдвинутого U, если соответствующий разряд маски равен «1», иначе берется разряд Ri. Результат заносится по адресу несдвигаемого операнда.

Пример: n = 4, режим W (работа со словами)

Операнд U

0011 0001 0101 0110

сдвинутый U

0001 0101 0110 0011

Операнд R

1010 1010 1010 1010

Маска S

0000 1111 0000 1111

Результат (R)

1010 0101 1010 0011

Табл. 12. Инструкции циклического сдвига и слияния

Код [8 : 5]

Мнемокод

Сдвигаемый ИСТ

Несдвигаемый ИСТ, ПРМ

Маска

0111

MDAI

РгD

Акк

I

1000

MDAR

РгD

Акк

РЗУ

10011

MDRI

РгD

РЗУ

I

1010

MDRA

РгD

РЗУ

Акк

1100

MARI

Акк

РЗУ

I

1110

MRAI

РЗУ

Акк

I

Биты N,Zрегистра состояний модифицируются, аOVRиC– сбрасываются в «0».

Инструкции этого типа могут быть эффективно использованы для преобразования одного кода в другой.

8) Инструкции шифрации:

15

14 13

12 9

8 5

4 0

PRT1

B/W

1 0

ПРМ

ИСТ (R)

Адрес РЗУ/ Маска S

PRT2

B/W

1 0

Маска S

ПРМ

Адрес РЗУ/ ИСТ

PRT3

B/W

1 0

Маска S

ИСТ (R)

Адрес РЗУ/ ПРМ

PRTNR

B/W

1 1

Маска S

ИСТ (R)

ПРМ

В этих инструкциях производится поразрядная конъюнкция операнда Rи инвертированного значения маскиS. Нулевое значение разряда маскиSiразрешает участие соответствующего разряда операндаRв шифрации приоритета. Выходной 5-разрядный код указывает номерстаршей единицыоперандаR(с учетом маски). БитыN,Zрегистра состояний модифицируются, аOVRиC– сбрасываются в «0». Ограничение на выбор операндов – необходимость использования для операнда и маски различных источников (что, впрочем, логично). Инструкции этого типа могут быть эффективно использованы в операциях нормализации.

Табл. 10.33. Инструкции шифрации

PRT!

ПРМ

ИСТ (R)

Код

Мнемокод

ПРМ

Код

Мнемокод

ИСТ (R)

1000

PR1A

Акк

0111

PRT1A

Акк

1010

PR1Y

Шина Y

1001

PRT1D

РгD

1011

PR1R

РЗУ

PRT2

Маска S

ПРМ

Код

Мнемокод

Маска S

Код

Мнемокод

ПРМ

1000

PRA

Акк

0000

PR2A

Акк

1010

PRZ

0

0010

PR2Y

Шина Y

1011

PRI

I

PRT3

Маска S

ИСТ (R)

Код

Мнемокод

Маска S

Код

Мнемокод

ИСТ (R)

1000

PRA

Акк

0011

PR3R

РЗУ

1010

PRZ

0

0100

PR3A

Акк

1011

PRI

I

0110

PR3D

РгD

Табл. 10.34. Инструкции шифрацииPRTNR

Маска S

ИСТ (R)

ПРМ

Код

Мнемокод

Маска S

Код

Мнемокод

ИСТ (R)

Код

Мнемокод

ПРМ

1000

PRA

Акк

0100

PRTA

Акк

00000

NRY

Шина Y

1010

PRZ

0

0110

PRTD

РгD

00001

NRA

Акк

1011

PRI

I

9) Инструкции генерации циклического избыточного кода (CRC)определяются одним полем – адресом РЗУ. Инструкции обеспечивают генерацию контрольных разрядов в циклическом избыточном коде. Одна инструкция – «прямая» (CRCF), другая – «обратная» (CRCR), отличающиеся порядком поступления разрядов на свертку: при прямой свертка начинается со старшего (15-го) разряда, при обратной – с младшего. Две инструкции необходимы, т.к. существующие стандарты применения циклических избыточных кодов не определяют, какой разряд данных (старший или младший) должен передаваться первым.

Форматы инструкций:

15

14 13

12 9

8 5

4 0

CRCF

1

1 0

0110

0011

Адрес РЗУ

CRCR

1

1 0

0110

1001

Адрес РЗУ

На рис. показан процесс реализации инструкции обратной свертки. Бит Lиспользуется как вход последовательного кода. В соответствии с полиномом, задаваемым с помощью маски, последовательный вход комбинируется с разрядами регистра контрольной суммы. После того, как последний входной бит будет обработан, регистр РЗУ содержит контрольные разряды. В процессе выполнения инструкций битыL,N,Zрегистра состояний РгС модифицируются, аCиOVR– сбрасываются в «0».

Перед началом операции необходимо загрузить в Акк полиноминальную маску, а в разряд LРгС – первый бит данных. В следующем такте этот бит появится на выходеL. Результат операцииэтого бита и старшего (младшего – для обратной свертки) бита регистра РЗУ передается на схемы поразрядной конъюнкции для умножения на разряды маскиS. Выходы конъюнкторов поступают на входы сумматоров по модулю два, где поразрядно складываются со сдвинутым на один разряд влево (для обратной сверткиn= 15, что соответствует сдвигу на один разряд вправо) операндомU(РЗУ). Результат операции поразрядного суммирования записывается в регистр РЗУ.

Очередной такт начинается с загрузки следующего разряда данных в разряд связи L. Процесс продолжается до тех пор, пока все разряды данных не пройдут такой цикл.

Табл. 10.35. Управление шинойYв инструкцияхCRC

Инструкция

Шина Y

Бит L

CRCF

Yi  [(L  РЗУ15) & Аккi]  РЗУi –1 i = 15 .. 1

Y0[(LРЗУ15) & Акк0]0

РЗУ15

CRCR

Yi  [(L  РЗУ0) & Аккi]  РЗУi +1 i = 14 .. 0

Y15[(LРЗУ0) & Акк15]0

РЗУ0

10) Инструкции установки и сохранения состоянияоперируют с регистром состояния РгС, формат которого имеет след. вид:

7

6

5

4

3

2

1

0

FL3

FL2

FL1

L

N

OVR

C

Z

Форматы инструкций:

15

14 13

12 9

8 5

4 0

SETST

0

1 1

1011

1010

К О П

RSTST

0

1 1

1010

1010

К О П

SVSTR

B/W

1 0

0111

1010

Адрес РЗУ/ ПРМ

SVSTNR

B/W

1 1

0111

1010

ПРМ

Табл. 10.36. Инструкции SETST и RSTST

SETST

RSTST

Код

Мнемокод

Установка

Код

Мнемокод

Сброс

00011

SONCCZ

OVR, N, C, Z  1

00011

RONCCZ

OVR, N, C, Z  0

00101

SL

L  1

00101

RL

L  0

00110

SF1

F1  1

00110

RF1

F0  0

01001

SF2

F2  1

01001

RF2

F2  0

01010

SF3

F3  1

01010

RF3

F3  0

Y(15:0)  1

Y(15:0)  0

При реализации инструкций SVST в регистр РЗУ (SVSTR) или в Акк (SVSTNR) загружается только младший байт (при B/W = 0) или все слово (при B/W = 1) с шины Y. На шинуYво всех случаях передается:Y(7:0)РгС,Y(15:8)0.

11) Инструкции проверки состоянияопределяют одно из 12 тестовых условий, которое передается на выходCT. Формат инструкций:

15

14 13

12 9

8 5

4 0

TSTST

0

1 1

1001

1010

К О П

Табл. 10.37. ИнструкцииTSTST

Код (4:0)

Мнемокод

Выдается на СТ

Код (4:0)

Мнемокод

Выдается на СТ

00000

TNOZ

(NOVR)Z

01100

TZC

ZC\

00010

TNO

NOVR

01110

TN

N

00100

TZ

Z

10000

TL

L

00110

TOVR

OVR

10010

TF1

F1

01000

TLOW

0 (Const)

10100

TF2

F2

01010

TC

C

10110

TF3

F3

Состояние шины Yпри действии инструкцииTSTSTне определено, содержимое РгС не меняется.

Содержимое РгС может быть так же проверено (помимо инструкции) через двунаправленную шину Т(4:1), причем код Т(4:1) совпадает с полем кода инструкции I(4:1) для выбора соответствующего условия (см. таблицу). При конфликте кодов I(4:1) и Т(4:1) приоритет имеют линии I(4:1).

12) Инструкция «Нет операции»:

15

14 13

12 9

8 5

4 0

NOP

0

1 1

1000

1010

0000

Значение шину Yне определено; Внутреннее состояние регистров не меняется.

Инструкции с непосредственным операндом – двухтактные – содержат в мнемокоде литеру «I». Операнд размещается в программе (микропрограмме) непосредственно за словом инструкции

.

Рис. 10.83. Реализация обратной свертки