Скачиваний:
49
Добавлен:
01.05.2014
Размер:
562.18 Кб
Скачать

24. Система команд 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. управления.

Соседние файлы в папке MPS_shprots