Шпаргалки по МПС / MPS_shprots / Вопрос 24
.docСистема команд iMCS96
Форматы команд:
Безадресные:
7 0
┌────────┐
│ OP │
└────────┘
Одноадресные: Способ адресации:
┌────────┐┌────────┐
│ OP ││ ad8 │ Прямая регистровая
└────────┘└────────┘
┌────────┐┌────────┐
│ OP 01││ data8 │ Непосредственная короткая
└────────┘└────────┘
┌────────┐┌────────┐┌────────┐
│ OP 01││ d16l ││ d16h │ Непосредственная длинная
└────────┘└────────┘└────────┘
┌────────┐┌────────┐
│ OP 10││ ad7 0│ Косвенная
└────────┘└────────┘
┌────────┐┌────────┐
│ OP 10││ ad7 1│ Косвенная автоинкрементная
└────────┘└────────┘
┌────────┐┌────────┐┌────────┐ Косвенная индексированная
│ OP 11││ ad7 0││ i8 │ короткая
└────────┘└────────┘└────────┘
┌────────┐┌────────┐┌────────┐┌────────┐ Косвенная индексированная
│ OP 11││ ad7 1││ i16l ││ i16h │ длинная
└────────┘└────────┘└────────┘└────────┘
┌────────┐┌────────┐ Относительная короткая с
│ OP ││ rel8 │ приращением адреса rel8
└────────┘└────────┘
┌────────┐┌────────┐ Относительная короткая с
│ OP rrr││ rel7_0 │ приращением адреса rel11
└────────┘└────────┘
┌────────┐┌────────┐┌────────┐ Относительная длинная с
│ OP ││ rel7_0 ││ rel15_8│ приращением адреса rel16
└────────┘└────────┘└────────┘
Обозначения:
OP - код операции;
ad8 - прямой восьмиразрядный адрес 8-разрядного либо 16-разрядно-
го регистра;
ad7 - старшая семибитная часть четного восьмиразрядного адреса
регистрового слова, содержащего 16-разрядный адрес байта либо слова;
data8 - непосредственные восьмиразрядные данные;
d16l, d16h - младший и старший байты непосредственных 16-разряд-
ных данных:
i8 - восьмиразрядное смещение со знаком из множества [-128,+127]
i16l, i16h - младший и старший байты шестнадцатиразрядного смеще-
ния со знаком из множества [-32768,+32767];
rel8, rel11, rel16 - приращение адреса из множества соответствен-
но [-128,+127], [-1024, 1023], [-32768,+32767] в командах перехода,
прибавляемого к адресу последнего байта данной команды.
Двухадресные:
┌────────┐┌────────┐┌────────┐ Только один из операндов
│ OP ││ ad8 ││ ad8 │ может иметь все способы
└────────┘└────────┘└────────┘ адресации, перечисленные в
┌────────┐┌────────┐┌────────┐ одноадресном формате, он
│ OP 01││ data8 ││ ad8 │ располагается всегда за
└────────┘└────────┘└────────┘ кодом операции;
┌────────┐┌────────┐┌────────┐┌────────┐ второй операнд является
│ OP 01││ d16l ││ d16h ││ ad8 │ всегда прямо адресуемым
└────────┘└────────┘└────────┘└────────┘ 8-ми либо 16 -разрядным
┌────────┐┌────────┐┌────────┐ регистром, адрес которого
│ OP 10││ ad7 0││ ad8 │ размещается в пооследнем
└────────┘└────────┘└────────┘ байте команды.
┌────────┐┌────────┐┌────────┐
│ OP 10││ ad7 1││ ad8 │
└────────┘└────────┘└────────┘
┌────────┐┌────────┐┌────────┐┌────────┐
│ OP 11││ ad7 0││ i8 ││ ad8 │
└────────┘└────────┘└────────┘└────────┘
┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐
│ OP 11││ ad7 1││ i16l ││ i16h ││ ad8 │
└────────┘└────────┘└────────┘└────────┘└────────┘
┌────────┐┌────────┐┌────────┐
│ OP ││ cnt ││ ad8 │
└────────┘└────────┘└────────┘
┌────────┐┌────────┐┌────────┐
│ OP ││ ad8 ││ rel8 │
└────────┘└────────┘└────────┘
┌────────┐┌────────┐┌────────┐
│ OP bbb││ ad8 ││ rel8 │
└────────┘└────────┘└────────┘
- cnt - число сдвигов из множества [0, 15] - непосредственный
операнд в командах сдвигов;
- bbb - трехразрядный адрес бита в регистре, адресуемом ad8.
В командах MUL/MULB, DIV/DIVB код операции OP занимает два байта.
Трехадресные: Только один из
┌────────┐┌────────┐┌────────┐┌────────┐ операндов может
│ OP 00││ ad8 ││ ad8 ││ ad8 │ иметь все способы
└────────┘└────────┘└────────┘└────────┘ адресации, перечис-
┌────────┐┌────────┐┌────────┐┌────────┐ ленные в одноадрес-
│ OP 01││ data8 ││ ad8 ││ ad8 │ ном формате, он рас-
└────────┘└────────┘└────────┘└────────┘ полагается всегда за
┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐ кодом операции; вто-
│ OP 01││ d16l ││ d16h ││ ad8 ││ ad8 │ рой и третий операн-
└────────┘└────────┘└────────┘└────────┘└────────┘ ды являются всегда
┌────────┐┌────────┐┌────────┐┌────────┐ прямо адресуемыми
│ OP 10││ ad7 0││ ad8 ││ ad8 │ 8-ми либо 16 -раз-
└────────┘└────────┘└────────┘└────────┘ рядными регистрами,
┌────────┐┌────────┐┌────────┐┌────────┐ адреса которых раз-
│ OP 10││ ad7 1││ ad8 ││ ad8 │ мещаются в последних
└────────┘└────────┘└────────┘└────────┘ двух байтах команды.
┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐ Последний байт -
│ OP 11││ ad7 0││ i8 ││ ad8 ││ ad8 │ всегда адрес регист-
└────────┘└────────┘└────────┘└────────┘└────────┘ ра назначения.
┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐
│ OP 11││ ad7 1││ i16l ││ i16h ││ ad8 ││ ad8 │
└────────┘└────────┘└────────┘└────────┘└────────┘└────────┘
!!! Процессор работает равноправно как со словами так и с байтами. Имеется в еаличии регистровый файл.
С функциональной точки команды подразделяются на группы:
1. пересылки,
2. логика,
3. арифметика,
4. команды переходов,
5. управления.