Скачиваний:
26
Добавлен:
03.06.2014
Размер:
352.26 Кб
Скачать

2.5. Определение модели памяти

Структура регистровой памяти представляет собой

  • восемь 16-разрядных функционально-ориентированных (ФО) регистров R0R7;

  • один 16-разрядный регистр PC– счётчик команд, а также один 16-разрядный регистрPCI, хранящий адрес команды, выполнение которой было прервано при прерывании;

  • два 6-разрядных регистра FиFI, хранящих флаги, один из которых (FI) необходим для сохранения флагов при прерывании;

  • РК– регистр команд;

  • РД– регистр данных;

  • РА– регистр адреса;

  • АР1, АР2, АР3– внутренние регистры АЛУ, хранящие 1, 2 операнды и результат;

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

В соответствии с выбранными форматами команд были выбраны сами команды. Результат проектирования – в таблице ниже.

Как было указано в предыдущем пункте, номер формата команды состоит из значений полей Пi, т.е. из следующих значений:

0 – операнд не используется;

1 – непосредственная;

2 – прямая;

3 – относительная;

Флаги, описывающие состояние процессора хранятся в регистре F (при прерывании –FI):

Z – признак нулевого результата;

C– признак переноса из старшего разряда;

S– знак результата;

O– признак переполнения результата;

I– разрешение прерывания;

T– пошаговый режим;

Таблица 2.6.1

Мнемо-ника

Описание

Содержание

Флаги

ФК

КОП

Z

C

S

O

I

T

Прерывания

Маска: 0000XX

00

INT

Вызов прерывания

PCI ← PC

FI ← F

Z

C

S

O

T

О-3

000000

01

CLI

Запретить прерывания

(сбросить флаг)

IF ← 0

I

А-0

000001

02

STI

Разрешить прерывания

(установить флаг)

IF ← 1

I

А-0

000010

03

IRET

Возврат из прерывания

PCI → PC

FI → F

Z

C

S

O

T

А-0

000011

Чтение / Запись

Маски: 0001XX, 0010XX, 0011XX

04

MOV

Передача данных из источника в приёмник

A1 ← A2

А-2

000100

05

IN

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

A1 ← [address]

А-2

000101

06

OUT

Запись в порт

A2 → [address]

А-2

000110

07

STS

Запись в ОП

[address] ← A1

A-2

000111

08

LDS

Чтение из ОП

A2 → [address]

A-2

001000

09

Логические операции

Маски: 010XXX

16

AND

Побитовое логическое «И»

A3 ← A2 & A1

Z

А-3

010000

17

OR

Побитовое логическое «ИЛИ»

A3 ← A2 | A1

Z

А-3

010001

18

XOR

Побитовое логическое «исключающее ИЛИ»

A3 ← A2 ^ A1

Z

А-3

010010

19

NOT

Инверсия операнда

A2 → NOT A1

Z

А-3

010011

20

EQ

Равно

A3 ← A1 == A2

Z

А-3

010100

21

NEQ

Не равно

A3 ← A1 != A2

Z

А-3

010101

Переходы

Маски: 011XXX, 1000XX

24

CALL

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

A ← A1

A-1

011000

25

RET

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

A ← [stack]

A-0

011001

26

JMP

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

A ← A1

A-1

011010

27

JZ

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

A ← A1

A-1

011011

28

JNZ

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

A ← A1

A-1

011100

29

JO

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

A ← A1

A-1

011101

30

JNO

Переход если O=0

A ← A1

A-1

011110

31

JC

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

A ← A1

A-1

011111

32

JNC

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

A ← A1

A-1

100000

33

JS

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

A ← A1

A-1

100001

34

JNS

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

A ← A1

A-1

100010

Арифметические операции c ФТ

Выполняются на АЛУ

Маски: 10XXXX

36

ADD

Сложение

A3 ← A1 + A2

Z

C

S

A-3

100100

37

SUB

Вычитание

A3 ← A1 - A2

Z

C

S

A-3

100101

38

MUL

Умножение

A3 ← A1 * A2

Z

C

S

A-3

100110

39

DIV

Деление

A3 ← A1 / A2

Z

C

S

A-3

100111

40

SHR

Логический сдвиг вправо

A2← SHR A1

Z

C

A-2

101000

41

SHL

Логический сдвиг влево

A2← SHL A1

Z

C

A-2

101001

42

SAL

Арифметический сдвиг влево

A2← SAL A1

Z

C

A-2

101010

43

SAR

Арифметический сдвиг вправо

A2← SAR A1

Z

C

A-2

101011

44

LR

Меньше

A3 ← A1 < A2

Z

C

S

А-3

101100

45

GR

Больше

A3 ← A1 > A2

Z

C

S

А-3

101101

Арифметические операции с ПТ

Выполняются на арифметическом сопроцессоре

Маски: 110XXX

48

FADD

Сложение

A3 ← A1 + A2

Z

C

S

A-3

110000

49

FSUB

Вычитание

A3 ← A1 - A2

Z

C

S

A-3

110001

50

FMUL

Умножение

A3 ← A1 * A2

Z

C

S

A-3

110010

51

FDIV

Деление

A3 ← A1 / A2

Z

C

S

A-3

110011

52

FLR

Меньше

A3 ← A1 < A2

Z

C

S

А-3

110100

53

FGR

Больше

A3 ← A1 > A2

Z

C

S

А-3

110101

Разное

Маски: 1111XX

60

CLC

Очистка флага переноса

СF ← 0

C

A-0

111100

61

STC

Установка флага переноса

СF ← 1

C

A-0

111101

62

BREAK

Приостановка программы

А-0

111110

63

NOP

Нет операции

А-0

111111

Маски, приведённые в таблице, используются для определения той или иной группы операций дешифратором. Например, команды математического сопроцессора должны обрабатываться устройством управления сопроцессора, в отличие от других арифметических команд, обрабатываемых АЛУ.

Соседние файлы в папке Обновление по АрхВС