Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсач и прога по АрхВС 9 вариант / 9306 Павлов Михаил_окончательный.doc
Скачиваний:
84
Добавлен:
03.06.2014
Размер:
434.18 Кб
Скачать
    1. 2.2.5. Выбор форматов команд

Команды имеют несколько форматов. В соответствии с техническим заданием, команды должны иметь максимум 3 операнда.

Рис. 8. Форматы команд.

В каждом цикле работы, процессор считывает из памяти команд 64-х разрядную команду, т.к. разрядность шины команд - 64 бита.

В старших 7 битах хранится код операции (КОП) - всего 128 возможных команд.

Поля ПА и ПАР указывают способ адресации операндов для соответствующих им полей:

Одноразрядное поле ПАР1, ПАР2, ПАР3 - для соответствующих полей с номерами регистров Р:

ПАР = 0 – прямая адресация регистра;

ПАР = 1 – косвенная адресация регистра;

Двухразрядное поле ПА1, ПА2, ПА3 - для соответствующих полей А или О:

ПА = 00 – прямая адресация регистра;

ПА = 01 – косвенная регистровая адресация;

ПА = 10 – прямая адресация ячейки памяти;

ПА = 11 — относительная адресация ячейки памяти;

Поля ИР1, ИР2, ИР3 служат для указания индексного регистра, к значению в котором прибавляется операнд в относительной адресации. Индексный регистр при разных значениях ИР это:

ИР = 0 - ПС;

ИР = 1 - соответствующий индексный регистр.

Поля, содержащие данные по которым можно найти операнды:

А — может содержать адрес ячейки памяти или номер регистра (при косвенно й регистровой адресации).

Р, Р1, Р2 и Р3 — может содержать номер регистра.

О, О1, О2 и О3 — может содержать адрес ячейки памяти или номер регистра.

Операнды извлекаются по значениям этих полей в соответствии с указанным в ПА или ПАР способом адресации.

Используемые способы адресации:

      1. Прямая адресация регистра

Номер регистра, в котором хранится операнд.

Исполнительный адрес AИСП=A.

      1. Косвенная регистровая адресация

Номер регистра, в котором хранится адрес той ячейки памяти где хранится операнд.

Исполнительный адрес равен содержимому регистра.

      1. Косвенная адресация регистра

Номер регистра, в котором хранится номер того регистра где хранится операнд.

Исполнительный адрес равен содержимому регистра.

      1. Прямая адресация ячейки памяти

Адрес ячейки памяти, в которой хранится операнд.

Исполнительный адрес AИСП=A.

      1. Относительная адресация

Исполнительный адрес ячейки памяти формируется следующим образом:

AИСП=A+X, где

A – базовый адрес, хранится в индексном регистре (его номер указан в ИР);

X – относительный адрес (индекс), указывающий положение данного, относительно базового адреса A, в адресном поле команды.

    1. 2.2.6. Разработка системы команд

Система команд в таблице ниже.

Таблица 6 Система команд

N

Мнемоника

Тип

Название

Содержание

Флажок

Код

Номер формата

C

Z

S

1

RDMB

Память

Чтение байта из памяти в регистр

Р <— A

2

2

RDMW

Память

Чтение слова из памяти в регистр

Р <— A

2

3

WRMB

Память

Запись байта из регистра в память

A <- Р

2

4

WRMW

Память

Запись слова из регистра в память

A <- Р

2

5

ADD

Арифм

Сложение

Р1 <– Р1 + Р2

Р1 <— Р2 + Р3

+

+

+

1

6

SUB

Арифм

Вычитание

Р1 <– Р1 - Р2

Р1 <— Р2 - Р3

+

+

+

1

7

MUL

Арифм

Умножение

Р1 <– Р1 * Р2

Р1 <— Р2 * Р3

+

+

+

1

8

DIV

Арифм

Деление

Р1 <– Р1 / Р2

Р1 <— Р2 / Р3

+

+

+

1

9

INC

Арифм

Инкремент

Р1++

(Р1 = Р1 + 1)

1

10

DEC

Арифм

Декремент

Р1--

(Р1 = Р1 - 1)

1

11

EQ

Арифм

Равно

Р1 <— Р2 == Р3

+

1

12

NEQ

Арифм

Не равно

Р1 <— Р2 != Р3

+

1

13

B

Арифм

Больше

Р1 <— Р2 > Р3

+

1

14

L

Арифм

Меньше

Р1 <— Р2 < Р3

+

1

15

BEQ

Арифм

Больше или равно

Р1 <— Р2 >= Р3

+

+

1

16

LEQ

Арифм

Меньше или равно

Р1 <— Р2 <= Р3

+

+

1

17

AND

Лог

И

Р1 <— Р2 & Р3

1

18

OR

Лог

ИЛИ

Р1 <— Р2 | Р3

1

19

XOR

Лог

Исключающее ИЛИ

Р1 <— Р2 ^ Р3

1

20

LSH

Лог

Сдвиг влево

Р1 <— Р2 << Р3

+

1

21

RSH

Лог

Сдвиг вправо

Р1 <— Р2 >> Р3

+

1

22

CALL

Функ

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

ПС <- A

2

23

MOV

Память

Запись в регистр содержимого регистра

Р1 <– Р2

1

24

IN

ВВ

Чтение из порта

Р <- PortN

25

OUT

ВВ

Вывод в порт

PortN <- Р

26

RET

Функ

Вернуться

ПС <- R31

3

27

NOP

Нет

Подождать

3

28

JMP

Переход

Безусловный переход

ПС <- A

2

29

JA

Переход

(Б/з) Переход, если больше

ПС <- A

+

+

30

JB

Переход

(Б/з) Переход, если меньше

ПС <- A

+

31

JAE

Переход

(Б/з) Переход, если больше или равно

ПС <- A

+

32

JBE

Переход

(Б/з) Переход, если меньше или равно

ПС <- A

+

+

33

JE

Переход

Переход, если равно

ПС <- A

+

34

JNE

Переход

Переход, если не равно

ПС <- A

+

35

JL

Переход

Переход, если больше

ПС <- A

+

36

JGE

Переход

Переход, если меньше

ПС <- A

+

37

JLE

Переход

Переход, если больше или равно

ПС <- A

+

+

38

JG

Переход

Переход, если меньше или равно

ПС <- A

+

+

Система команд включает следующие команды (через тире обозначен тип в таблице):

1) обращения к памяти по чтению и записи - Память;

2) целочисленные арифметические для чисел со знаком и без знака (сложение, вычитание, умножение, деление, сравнение) - Арифм;

3) логические (поразрядное “И”, “ИЛИ” и “Исключающее ИЛИ”) - Лог;

4) сдвигов на произвольное число тактов - Лог;

6) условных и безусловных переходов - Переход;

7) работы с подпрограммами - Прогр;

8) загрузки в регистры непосредственных операндов;

9) ввода-вывода - ВВ;

10) управления вычислительным процессом.

Код операции равен номеру (N) в двоичной форме.