Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая Вариант 18.docx
Скачиваний:
25
Добавлен:
17.06.2016
Размер:
188.59 Кб
Скачать

1.3. Метод конвейеризации

Для модернизации классической ЭВМ в проекте используется простой способ конвейеризации, то есть предварительной выборки команды. Когда текущая команда выполняет последнюю часть своей работы в CPU, будет производиться выборка очередной команды.

1.4. Технические требования

1.4.1. Команды эвм

В таблице использованы следующие обозначения:

  • Акк – (аккумулятор) источник данных или приемник;

  • IP – указатель адреса следующей команды;

  • К – адресная константа, содержит в себе целевой адрес для перехода;

  • Rr – источник данных;

  • Rd – приемник данных;

  • Rn – начальный адрес;

  • N – номер порта ввода/вывода;

  • FLAGS –регистр флагов;

  • SP – указатель на вершину стека;

  • REG – регистр косвенной адресации;

  • GT – регистр начального адреса глобальной таблицы страниц;

  • LT – регистр начального адреса локальной таблицы страниц;

  • TOS – таблица описания страниц.

Мнемокод

Код

Операнд

Назначение и действия

Флаги

ADD

01100

Rr

Сложение с фиксированной точкой

Акк ←Акк + Rr

OF, ZF, SF

FADD

01010

Rr

Сложение с плавающей точкой

Акк ←Акк + Rr

OF, ZF, SF

WR

00011

Rd

Запись в память из аккумулятора

RAM(Rd) ←Акк

READ

00100

Rr

Чтение из памяти в аккумулятор

Акк←RAM(Rr)

JMP

00101

K

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

IP←K

JS

00001

K

Условный переход

If (SF==1) then IP←K

JZ

00010

K

Условный переход

If (ZF==1) then IP←K

HLT

00000

Остановка

Тп ←0

CLI

00110

Сброс флага IF

IF ←0

IF

STI

00111

Установка IF

IF ←1

IF

SUB

01011

Rr

Вычитание

Aкк ← Aкк-Rr

OF, ZF, SF

PUSH

10001

Rr

Запись в стек

SP ← SP-4

RAM(SP) ← Rr

POP

10010

Rr

Чтение из стека

Rr ← RAM(SP)

SP ← SP+4

OF,ZF,SF,IF

SHIFTRZ

11001

Акк ← Акк >> 1

ZF

MOVREG

10000

Rr

Загружает Rr в регистр косвенной адресации

REG←RAM(Rr)

INC

10111

Rr

Увеличение на 1

RAM(Rr) ← RAM(Rr)+1

OF

DEC

11000

Rr

Уменьшение на 1

RAM(Rr) ← RAM(Rr) -1

ZF

IN

11010

N

Загрузка в Акк байта порта I/O

Акк ← PORT(N)

OUT

11011

N

Вывод значения из регистра в порт

PORT(N) ←Aкк

CALLUSER

11110

Переключение в пользовательский режим

PF 1

PF

CALLSYS

11111

Переключение в системный режим

PF 0

PF

Мнемокод

Код

Операнд

Назначение и действия

Флаги

INT

01110

I

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

SP ← SP-4

RAM(SP) ← IP

SP ← SP-4

RAM(SP) ← IF

IF ← 0

IP ← RAM(I*4)

IF

IRET

01111

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

IF←RAM(SP)

SP←SP+4

IP←RAM(SP)

SP←SP+4

OF,ZF,SF,IF

AND

10011

Rr

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

Aкк ←Aкк&Rr

ZF

OR

10100

Rr

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

Aкк←Aкк|Rr

ZF

NOT

1101

Логическое отрицание

Aкк ← !Aкк

ZF

CMP

10101

Rd

Сравнить содержимое регистра Rd с Акк.

Установить флаг ZF – если равны, SF – если Rd < Акк

ZF,SF

CMD

10110

Rd

Сравнить содержимое регистра Rd с Акк.

Установить флаг ZF – если равны, SF – если Rd > Акк

ZF,SF

CONTSAVE

11100

Rn

Сохранение контекста процесса

RAM(Rn)←IP

RAM(Rn +4)←FLAGS

RAM(Rn +8)←Rr

RAM(Rn +12)←Rd

RAM(Rn +16)←Акк

RAM(Rn +20)←GT

RAM(Rn +24)←LT

RAM(Rn +28)←TOS

RAM(Rn +32) ←REG

RAM(Rn +36)←SP

CONTREST

11101

Rn

Восстановление контекста процесса

SP←RAM(Rn +36)

REG←RAM(Rn +32)

TOS←RAM(Rn +28)

LT←RAM(Rn +24)

GT←RAM(Rn +20)

Акк←RAM(Rn +16)

Rd←RAM(Rn +12)

Rr←RAM(Rn +8)

FLAGS←RAM(Rn +4)

IP←RAM(Rn)