Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по предмету “Архитектура современных ЭВМ .doc
Скачиваний:
53
Добавлен:
01.05.2014
Размер:
379.39 Кб
Скачать

4. Форматы данных, команд и способы адресации

4.1. Форматы данных

Разрабатываемый процессор, в соответствии с техническим заданием, работает с тремя форматами данных: слово, двойное слово и число с плавающей точкой одинарной точности (см. рис. 3).

Числа с фиксированной точкой представляют собой целые со знаком или без него. Целые числа со знаком представляются в дополнительных кодах.

А

Рис. 3

дреса представляются в виде целых чисел без знака

4.2. Формат команд

Все команды имеют один формат (см. рис. 4).

В

AMD

КОП

SRS2

DEST

SRS1

IMM

7 бит

2 бит

5 бит

1 бит

5 бит

12 бит

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

В

Рис. 4

25

0

31

24

22

18

17

13

11

12

23

битах 26 – 31 (КОП) хранится код операции.

Бит AMDУказывает способ адресации:

  • AMD=00 – прямая адресация;

  • AMD=01 – косвенная адресация;

  • AMD=10 илиAMD=11 – относительная адресация.

Поля DEST,SRS1 иSRS2 задают, соответственно, регистр - приёмник и регистры - источники данных.

Бит IMMпозволяет записывать в полеSRS2 непосредственный операнд, прямой адрес или смещение. Это становится возможным приIMM=1. В противном случаеSRS2 хранит номер регистра.

В битах 0 – 23 хранится адрес одного из операндов или непосредственный операнд.

4.3. Способы адресации

В соответствии с техническим заданием, требуется осуществить 3 способа адресации.

4.3.1. Прямая адресация

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

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

4.3.2. Косвенная адресация

В адресной части команды Aуказывается адрес адреса операнда.

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

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

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

A– базовый адрес, указываемый в адресном поле команды;

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

5. Система команд

Система команд разрабатываемого процессора приведена в виде таблицы (см. табл. 1).

Если в результате команды происходит установка каких либо флажков, то в соответствующей клетке таблицы находится знак +, в противном случае -.

Назначение полей DEST,SRS1,SRS2 описано в разделе 4.2.

Если како-то значение берётся не из SRS1 илиSRS2, а из ячейки памяти, адрес которой содержится вSRS1 илиSRS2, то соответствующие поля записываются в квадратных скобках. Тоже самое касается записи значения по заданному адресу.

В командах сдвига RLиRR, содержимое регистраDESTсдвигается наSRS1 разряда, после чего результат записывается в регистрDEST.

В командах перехода A– это адрес, по которому осуществляется переход.

В колонке содержания команды указаны примеры для прямой адресации. Способ адресации указывается в формате команды полем AMD(см. рис. 4). Виды адресации описаны в разделе 4.3. Если используется относительная адресация, то базовый адрес записывается вSRS1, а индекс вSRS2 (см. разд. 4.3.3).

Таблица 1

Мнемоника

Название

Содержание

Флажок

Код

C

O

Z

S

1

LD

Загрузка в регистр непосредственного операнда

DEST SRS2

-

-

-

-

0000001

2

RD

Чтение из памяти

DEST [SRS2]

-

-

-

-

0000010

3

WR

Запись в память

[DEST] SRS1

-

-

-

-

0000011

4

ADD

Сложение с ФТ

DEST DEST + SRS1

+

+

+

+

0000100

5

SUB

Вычитание с ФТ

DEST DEST – SRS1

+

+

+

+

0000101

6

MUL

Умножение с ФТ

DEST DEST * SRS1

+

+

+

+

0000110

7

DIV

Деление с ФТ

DEST DEST / SRS1

+

+

+

+

0000111

8

FADD

Сложение с ПТ

DEST DEST + SRS1

+

+

+

+

0001000

9

FSUB

Вычитание с ПТ

DEST DEST – SRS1

+

+

+

+

0001001

10

FMUL

Умножение с ПТ

DEST DEST * SRS1

+

+

+

+

0001010

11

FDIV

Деление с ПТ

DEST DEST / SRS1

+

+

+

+

0001011

12

AND

Логическое “И”

DEST DEST & SRS1

-

-

+

-

0001100

13

OR

Логическое “ИЛИ”

DEST DEST V SRS1

-

-

+

-

0001101

14

XOR

Логическое “Исключающее ИЛИ”

DEST DEST M2 SRS1

-

-

+

-

0001110

15

RL

Сдвиг влево

DEST DEST << SRS1

-

-

+

-

0001111

16

RR

Сдвиг вправо

DEST DEST >> SRS1

-

-

+

-

0010000

17

JP

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

A SRS2

-

-

-

-

0010001

18

JPC

Переход если C=1

A SRS2

-

-

-

-

0010010

19

JPZ

Переход если Z=1

A SRS2

-

-

-

-

0010011

20

JPS

Переход если S=1

A SRS2

-

-

-

-

0010100

21

JPNC

Переход если C1

A SRS2

-

-

-

-

0010101

22

JPNZ

Переход если Z1

A SRS2

-

-

-

-

0010110

23

JPNS

Переход если S1

A SRS2

-

-

-

-

0010111

24

CALL

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

A SRS2

-

-

-

-

0011000

25

RET

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

A stack

-

-

-

-

0011001

26

OUT

Выдача данных в порт

A SRS2

-

-

-

-

0011010

27

IN

Приём данных из порта

A SRS2

-

-

-

-

0011011