1) Инструкции с одним операндом имеют два формата SOR (с использованием РЗУ) и SONR (без использования РЗУ), форматы которых приведены в Табл. 10.10 и Табл. 10.11.
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.10. Инструкции SOR с одним операндом
Код операций
Источник, приемник
Код
Мнемо
Операция
Код
Мнемо
Источн.
Приемн.
MOVE
ИСТ ® ПМН
SORA
РЗУ
Акк
COMP
ИСТ ® ПМН
SORY
РЗУ
Шина Y
INC
ИСТ+1 ® ПМН
SORS
РЗУ
Рг.С
NEG
ИСТ+1 ® ПМН
SOAR
Акк
РЗУ
Примечания:
Рг. D.0 – расширение байта нулями;
Рг. D.S– расширение байта знаком
SODR
Рг. D
РЗУ
SOIR
I
РЗУ
SOZR
РЗУ
SOZER
Рг. D.0
РЗУ
SOSER
Рг. D.S
РЗУ
SORR
РЗУ
РЗУ
Табл. 10.11. Инструкции SONR с одним операндом
Код операций
Источник, приемник
Код
Мнемо
Операция
Код
Мнемо
Источн.
Приемн.
MOVE
ИСТ ® ПМН
SOA
Акк
–
COMP
ИСТ ® ПМН
SOD
Рг. D
–
INC
ИСТ+1 ® ПМН
SOI
I
–
1111
NEG
ИСТ+1 ® ПМН
SOZ
–
SOZE
Рг. D.0
–
SOSE
Рг. D.S
–
NRY
–
Шина Y
NRA
–
Акк
NRS
–
Рг. С
NRAS
–
Акк, Рг.С
Все однооперандные инструкции передают на шину Y значение, загружаемое в приемник.
Разряды Z, C, N, OVR регистра состояний модифицируются, остальные – не меняются.
Единственное ограничение на способ адресации: если Акк и Рг.С определены одновременно в качестве приемников, то невозможно использовать РЗУ в качестве источника.
2) Инструкции с двумя операндами имеют следующие форматы:
14 13
12 9
8 5
4 0
TOR1
B/W
0 0
ИСТ, ИСТ, ПРМ
К О П
Адрес РЗУ
TOR2
B/W
1 0
ИСТ, ИСТ, ПРМ
К О П
Адрес РЗУ
TONR
B/W
1 1
ИСТ, ИСТ
К О П
ПРМ
Табл. 10.12. Двухоперандные инструкции типа TOR 1,2
ИСТ, ИСТ, ПРМ
К О П
Код
Мнемокод
R
S
ПРМ
Код
Мнемокод
Операция
TOR1
TORAA
РЗУ
Акк
Акк
SUB R
S – R
TORIA
РЗУ
I
Акк
SUB RC
S – R + C
TODRA
Рг.D
РЗУ
Акк
SUB S
R – S
TORAY
РЗУ
Акк
Y
SUB SC
R – S + C
TORIY
РЗУ
I
Y
ADD
R + S
TODRY
Рг.D
РЗУ
Y
ADD C
R + S +C
TORAR
РЗУ
Акк
РЗУ
AND
R & S
TORIR
РЗУ
I
РЗУ
NAND
(R & S)\
TODRR
Рг.D
РЗУ
РЗУ
EXOR
R Å S
TOR2
TODAR
Рг.D
Акк
РЗУ
NOR
(R Ú S)\
TOAIR
Акк
I
РЗУ
OR
R Ú S
TODIR
Рг.D
I
РЗУ
EXNOR
(R Å S)\
Табл. 10.13. Двухоперандные инструкции типа TONR
ИСТ, ИСТ
К О П
ПРМ
Код
Мнемокод
R
S
Код
Мнемокод
Приемник
TODA
Рг.D
Акк
В соответствии с табл. 4
NRI
Y
TOAI
Акк
I
NRA
Акк
TODI
Рг.D
I
NRS
Рг.C
NRAS
Акк, Рг.C
Примечание. Флаги OVR, N, Z, C модифицируются по результатам арифметических операций; в логических операциях OVR := C := 0.
3) Инструкции сдвига на один разряд имеют следующие форматы:
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.19. Выполнение процедур сдвига
Табл. 10.14. Инструкции сдвига на 1 разряд
ИСТ, ПРМ, (ИСТ) (ПРМ)
К О П
Код
Мнемокод
ИСТ
ПРМ
Код
Мнемокод
Направление
Вдвигаемое значение
SHFTR
SHRR
РЗУ
РЗУ
SHUPZ
Влево
SHND
Рг.D
РЗУ
SHUP1
Влево
SHFTNR
SHA
Акк
SHUPL
Влево
L
SHD
Рг.D
SHDNZ
Вправо
NRY
Y
SHDN1
Вправо
NRA
Акк
SHDNL
Вправо
L
SHDNC
Вправо
C
SHDNOV
Вправо
NÅOVR
Табл. 10.15. Управление шиной 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) Инструкции с битами имеют следующие форматы:
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.16. Инструкции с битами формата BOR 1,2
Код
Мнемокод
Операция
Шина Y
Z-разряд РгС*)
BOR1
SETNR
Устан. РЗУ в «1»
Yi РЗУi, i ¹ n; Yn 1
RSTNR
Сброс в «0»
Yi РЗУi, i ¹ n; Yn 0
U
TSTNR
Проверка РЗУ
Yi 0, i ¹ n; Yn РЗУn
U
BOR2
LD2NR
2n ® РЗУ
Yi 0, i ¹ n; Yn 1
LDC2NR
(2n)\ ® РЗУ
Yi 1, i ¹ n; Yn 0
A2NR
РЗУ + 2n ® РЗУ
Y РЗУ + 2n
U
S2NR
РЗУ - 2n ® РЗУ
Y РЗУ - 2n
U
*) Разряды L, Fl(1:3) не меняются, C, OVR – устанавливаются в «0»
Табл. 10.17. Инструкции с битами формата BONR
Код
Мнемокод
Операция
Шина Y
РгС
Z
C, OVR
TSTNA
Проверка Акк
Yi 0, i ¹ n; Yn Аккn
U
RSTNA
Сброс в «0» Акк
Yi Аккi, i ¹ n; Yn 0
U
SET NA
Устан. в «1» Акк
Yi Аккi, i ¹ n; Yn 1
A2NA
Акк + 2n ® Акк
Y Акк + 2n
U
U
S2NA
Акк - 2n ® Акк
Y Акк - 2n
U
U
LD2NA
2n ® Акк
Yi 0, i ¹ n; Yn 1
LDC2NA
(2n)\ ® Акк
Yi 1, i ¹ n; Yn 0
TSTND
Проверка РгD
Yi 0, i ¹ n; Yn РгDn
U
RSTND
Сброс в «0» РгD
Yi РгDi, i ¹ n; Yn 0
U
SETND
Устан. в «1» РгD
Yi РгDi, i ¹ n; Yn 1
A2NDY
РгD + 2n ® Y
Yi РгDi + 2n
U
U
S2NDY
РгD - 2n ® Y
Yi РгDi - 2n
U
U
LS2NY
2n ® Y
Yi 0, i ¹ n; Yn 1
LDC2NY
(2n)\ ® Y
Yi 1, i ¹ n; Yn 0
В табл. 8 и 9 «проверка» – это установка признака Z в состояние, определяемое значением n-го разряда адресуемого объекта. «Установка» и «сброс» – при сохранении всех разрядов, кроме n-го.
5) Инструкции циклических сдвигов на n разрядов имеют следующие форматы:
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.18. Инструкции циклического сдвига
Формат
Код
Мнемокод
ИСТ
ПРМ
ROTR1
RTRA
РЗУ
Акк
RTRY
РЗУ
Шина Y
RTRR
РЗУ
РЗУ
ROTR2
RTAR
Акк
РЗУ
RTDR
РгD
РЗУ
ROTNR
RTDY
РгD
Шина Y
RTDA
РгD
Акк
RTAY
Акк
Шина Y
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) Инструкции циклического сдвига и сравнения:
14 13
12 9
8 5
4 0
ROTC
B/W
0 1
n
ИСТ, ПРМ, МАСКА
Адрес РЗУ
Инструкция осуществляет поразрядное сравнение двух 16-разрядных векторов, маскированных вектором маски, причем один из входных векторов предварительно (перед маскированием) сдвигается на заданное число разрядов ().
Рис. 10.20. Сдвиг и сравнение
Единичное значение разряда маски исключают из сравнения соответствующие разряды операндов (оба при сравнении равны «0»). Биты N, Z регистра состояний модифицируются, а OVR и C – сбрасываются в «0».
Табл. 10.19. Инструкции циклического сдвига и сравнения
Код [8 : 5]
Мнемокод
Сдвигаемый ИСТ
Несдвигаемый ИСТ, ПРМ
Маска
CDAI
РгD
Акк
I
CDRI
РгD
РЗУ
I
CDRA
РгD
РЗУ
Акк
CRAI
РЗУ
Акк
I
7) Инструкции циклического сдвига и слияния:
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]
Мнемокод
Сдвигаемый ИСТ
Несдвигаемый ИСТ, ПРМ
Маска
MDAI
РгD
Акк
I
MDAR
РгD
Акк
РЗУ
MDRI
РгD
РЗУ
I
MDRA
РгD
РЗУ
Акк
MARI
Акк
РЗУ
I
MRAI
РЗУ
Акк
I
Биты N, Z регистра состояний модифицируются, а OVR и C – сбрасываются в «0».
Инструкции этого типа могут быть эффективно использованы для преобразования одного кода в другой.
8) Инструкции шифрации:
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.20. Инструкции шифрации
PRT!
ПРМ
ИСТ (R)
Код
Мнемокод
ПРМ
Код
Мнемокод
ИСТ (R)
PR1A
Акк
PRT1A
Акк
PR1Y
Шина Y
PRT1D
РгD
PR1R
РЗУ
PRT2
Маска S
ПРМ
Код
Мнемокод
Маска S
Код
Мнемокод
ПРМ
PRA
Акк
PR2A
Акк
PRZ
PR2Y
Шина Y
PRI
I
PRT3
Маска S
ИСТ (R)
Код
Мнемокод
Маска S
Код
Мнемокод
ИСТ (R)
PRA
Акк
PR3R
РЗУ
PRZ
PR3A
Акк
PRI
I
PR3D
РгD
Табл. 10.21. Инструкции шифрации PRTNR
Маска S
ИСТ (R)
ПРМ
Код
Мнемокод
Маска S
Код
Мнемокод
ИСТ (R)
Код
Мнемокод
ПРМ
PRA
Акк
PRTA
Акк
NRY
Шина Y
PRZ
PRTD
РгD
NRA
Акк
PRI
I
9) Инструкции генерации циклического избыточного кода (CRC) определяются одним полем – адресом РЗУ. Инструкции обеспечивают генерацию контрольных разрядов в циклическом избыточном коде. Одна инструкция – «прямая» (CRCF), другая – «обратная» (CRCR), отличающиеся порядком поступления разрядов на свертку: при прямой свертка начинается со старшего (15-го) разряда, при обратной – с младшего. Две инструкции необходимы, т.к. существующие стандарты применения циклических избыточных кодов не определяют, какой разряд данных (старший или младший) должен передаваться первым.
Форматы инструкций:
14 13
12 9
8 5
4 0
CRCF
1 0
Адрес РЗУ
CRCR
1 0
Адрес РЗУ
На рис. показан процесс реализации инструкции обратной свертки. Бит L используется как вход последовательного кода. В соответствии с полиномом, задаваемым с помощью маски, последовательный вход комбинируется с разрядами регистра контрольной суммы. После того, как последний входной бит будет обработан, регистр РЗУ содержит контрольные разряды. В процессе выполнения инструкций биты L, N, Z регистра состояний РгС модифицируются, а C и OVR – сбрасываются в «0».
Перед началом операции необходимо загрузить в Акк полиноминальную маску, а в разряд L РгС – первый бит данных. В следующем такте этот бит появится на выходе L. Результат операции Å этого бита и старшего (младшего – для обратной свертки) бита регистра РЗУ передается на схемы поразрядной конъюнкции для умножения на разряды маски S. Выходы конъюнкторов поступают на входы сумматоров по модулю два Å, где поразрядно складываются со сдвинутым на один разряд влево (для обратной свертки n = 15, что соответствует сдвигу на один разряд вправо) операндом U (РЗУ). Результат операции поразрядного суммирования записывается в регистр РЗУ.
Очередной такт начинается с загрузки следующего разряда данных в разряд связи L. Процесс продолжается до тех пор, пока все разряды данных не пройдут такой цикл.
Табл. 10.22. Управление шиной 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) Инструкции установки и сохранения состояния оперируют с регистром состояния РгС, формат которого имеет след. вид:
FL3
FL2
FL1
L
N
OVR
C
Z
Форматы инструкций:
14 13
12 9
8 5
4 0
SETST
1 1
К О П
RSTST
1 1
К О П
SVSTR
B/W
1 0
Адрес РЗУ/ ПРМ
SVSTNR
B/W
1 1
ПРМ
Табл. 10.23. Инструкции SETST и RSTST
SETST
RSTST
Код
Мнемокод
Установка
Код
Мнемокод
Сброс
SONCCZ
OVR, N, C, Z 1
RONCCZ
OVR, N, C, Z 0
SL
L 1
RL
L 0
SF1
F1 1
RF1
F0 0
SF2
F2 1
RF2
F2 0
SF3
F3 1
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. Формат инструкций:
14 13
12 9
8 5
4 0
TSTST
1 1
К О П
Табл. 10.24. Инструкции TSTST
Код (4:0)
Мнемокод
Выдается на СТ
Код (4:0)
Мнемокод
Выдается на СТ
00000
TNOZ
(NÅOVR)ÚZ
TZC
ZÚC\
TNO
NÅOVR
TN
N
TZ
Z
TL
L
TOVR
OVR
TF1
F1
TLOW
0 (Const)
TF2
F2
TC
C
TF3
F3
Состояние шины Y при действии инструкции TSTST не определено, содержимое РгС не меняется.
Содержимое РгС может быть так же проверено (помимо инструкции) через двунаправленную шину Т(4:1), причем код Т(4:1) совпадает с полем кода инструкции I(4:1) для выбора соответствующего условия (см. таблицу). При конфликте кодов I(4:1) и Т(4:1) приоритет имеют линии I(4:1).
12) Инструкция «Нет операции»:
14 13
12 9
8 5
4 0
NOP
1 1
Значение шину Y не определено; Внутреннее состояние регистров не меняется.
Инструкции с непосредственным операндом – двухтактные – содержат в мнемокоде литеру «I». Операнд размещается в программе (микропрограмме) непосредственно за словом инструкции