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

8. Регистровая модель процессора

Регистры общего назначения (РОН). Системные регистры

TINT

TLB

BVA

PC

RF

31……………0

RG1

RG2

RG63

31……………0


Регистр флагов

R

I

T

O

C

S

Z

D

0

1

2

3

4

5

6

7

Регистры плавающего процессора:

регистр статуса (SR)

15…11

10

9

8

7

6

5

4

3

2

1

0

xxx

B

Z

S

O

I

DE

PE

UE

OE

ZE

IE


регистр управления(CR).

15…11

8

7,6

5

4

3

2

1

0

xxx

IC

RC

PM

UM

OM

ZM

DM

IM


регистровая модель центрального процессора состоит из:

  • 64 32-разрядных регистров общего назначения;

  • 32-разрядного регистра, содержащего адрес таблицы векторов прерываний (TINT);

  • 32-разрядного регистра, содержащего адрес буфера TLB (TLB);

  • 32-разрядного регистра, содержащего адрес “плохой” страницы (BVA), т.е. страницы, не содержащейся в оперативной памяти в момент обращения к ней;

  • 32-разрядного счетчика команд (PC);

  • 8-разрядного регистра флажков. В этом регистре разряды имеют следующее предназначение:

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

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

  • S - знак результата

  • O - признак переполнения

  • I - флаг прерывания

  • T - флаг ловушки (пошаговый режим)

  • R - режим супервизор/пользователь

  • D - флаг что 32/64 битный формат данных (для некоторых операций не влияет)

  • регистр статуса (SR)

  • B – busy-бит показывает свободен или занят плавающий процессор

  • Z – флаг нуля;

  • S – флаг знака;

  • O – флаг переполнения;

  • I – флаг разрешения прерываний;

  • DE – ненормализованный результат;

  • PE – потеря точности;

  • UE – антипереполнение;

  • OE – переполнение;

  • ZE – деление на ноль;

  • IE – недействительная операция.

  • регистра управления(CR).

  • IC – тип арифметики:

      1. аффинная (существуют положительная и отрицательная бесконечности);

      2. проективная (существует только одна бесконечность, которая не имеет знака)

  • PM – маска особого случая при неточном результате;

  • UM – маска антипереполнения;

  • OM – маска переполнения;

  • ZM – маска деления на нуль;

  • DM – маска ненормализованного результата;

  • IM – маска недействительной операции.

9. Система команд процессора

Таблица 5. Система команд центрального процессора

Name

Содержание

Функция

Флаги

Код

Z

C

S

O

I

T

R

D

Обращение к памяти по чтению и записи

1

LDH

Чтение полуслова старшей части слова

R0<= <R1>+DIS

-

-

-

-

-

-

-

000000

LDL

Чтение полуслова младшей части слова

R0<= <R1>+DIS

-

-

-

-

-

-

-

000001

LD32

Чтение слова

R0<= <RG1>+DIS

-

-

-

-

-

-

-

000010

LD64

Чтение двойного слова

R0<= <RG1>+DIS

-

-

-

-

-

-

-

000011

WRHW

Запись полуслова старшей части слова

<R0>=> <R1>+DIS

-

-

-

-

-

-

-

000100

WRHW

Запись полуслова младшей части слова

<R0>=> <R1>+DIS

-

-

-

-

-

-

-

000101

WRW

Запись слова

<R0>=><R1>+DIS

-

-

-

-

-

-

-

000110

WRDW

Запись двойного слова

<R0>=> <R1>+DIS

-

-

-

-

-

-

-

000111

IN

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

<R0><=порт<R1>

-

-

-

-

-

-

-

001000

OUT

Запись в порт

<R1>=>порт <R2>

-

-

-

-

-

-

-

001001

XCHG

Обмен RG<>RG

<R0><R1>

-

-

-

-

-

-

-

001010

MOV

Занос в регистр значения

<R0><= R1

-

-

-

-

-

-

-

001011

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

ADD

Сложение

<R0><= <R0>+<R1>

+

+

+

+

-

-

-

001100

SUB

Вычитание

<R0><= <R0>-<R1>

+

+

+

+

-

-

-

001101

MULT

Умножение

<R0><= <R0>*<R1>

+

+

+

+

-

-

-

001110

DIV

Деление

<R0><= <R0>/<R1>

+

+

+

+

-

-

-

001111

ADDU

Сложение

<R0><= <R0>+<R1>

+

+

+

+

-

-

-

010000

SUBU

Вычитание

<R0><= <R0>-<R1>

+

+

+

+

-

-

-

010001

MULTU

Умножение

<R0><= <R0>*<R1>

+

+

+

+

-

-

-

010010

DIVU

Деление

<R0><= <R0>/<R1>

+

+

+

+

-

-

-

010011

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

21

AND

«И»

<R0><= <R0>&<R1>

+

-

+

-

-

-

-

010100

22

OR

«ИЛИ»

<R0><= <R0>v<R1>

+

-

+

-

-

-

-

010101

23

XOR

Искл. «ИЛИ»

<R0><= <R0>+<R1>

+

-

+

-

-

-

-

010110

24

NOT

«НЕ»

<R0><= ~<R1>

+

-

+

-

-

-

-

010111

25

RCL

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

<R0> << R1

-

+

-

+

-

-

-

011000

26

RCR

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

<R0> >> R1

-

+

-

+

-

-

-

011001

Команды переходов и прерываний

27

CLI

Очистить флаг разрешения прерываний

-

-

-

-

+

-

-

-

011010

28

STI

Установить флаг разрешения прерываний

-

-

-

-

+

-

-

-

011011

29

INT

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

R31<=PC

R30<=flags

+

+

+

+

+

+

+

011100

30

IRET

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

PC<=R31

flags<=R30

-

-

-

-

-

-

-

111101

31

CALL

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

R31<=PC

PC<=<R0>+R1

-

-

-

-

-

-

-

111110

32

RET

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

PC<=R0

-

-

-

-

-

-

-

111111

33

JMP

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

PC<=<R0>+ R1

-

-

-

-

-

-

-

100000

34

JZ

Переход по нулю

PC<=<R0>+ R1

+

-

-

-

-

-

-

100000

35

JNZ

Переход не по нулю

PC<=<R0>+ R1

+

-

-

-

-

-

-

100001

36

JO

Переход по переполнению

PC<=<R0>+ R1

-

-

-

+

-

-

-

100010

37

JNO

Переход по не переполнению

PC<=<R0>+ R1

-

-

-

+

-

-

-

100011

38

JC

Переход по переносу

PC<=<R0>+ R1

-

+

-

-

-

-

-

100100

39

JNC

Переход не по переносу

PC<=<R0>+ R1

-

+

-

-

-

-

-

100101

40

JS

Переход по, меньше нуля

PC<=<R0>+ R1

-

-

+

-

-

-

-

100110

41

JNS

Переход по, не меньше нуля

PC<=<R0>+ R1

-

-

+

-

-

-

-

100111

Специальные операции

42

RF

Чтение флагов

<R0><=Flags

-

-

-

-

-

-

-

101000

43

WF

Запись флагов

<R0>=>Flags

+

+

+

+

+

+

+

101001

44

RFFS

Чтение флагов статуса плавающего процессора

<R0><=Flags

-

-

-

-

-

-

-

111111

45

RFFС

Чтение управляющих флагов плавающего процессора

<R0><=Flags

-

-

-

-

-

-

-

111110

46

WFFС

Запись управляющих флагов плавающего процессора

<R0>=>Flags

-

-

-

-

-

-

-

111101

47

WTLB

Запись TLBP

<R0>=>TLB

-

-

-

-

-

-

-

101011

48

RTLB

Чтение TLBP

<R0><=TLB

-

-

-

-

-

-

-

111100

49

RINT

Чтение TINT

<R0><=TINT

-

-

-

-

-

-

-

101100

50

WINT

Запись TINT

<R0>=>TINT

-

-

-

-

-

-

-

101101

51

RBVA

Чтение BVA

<R0><=BVA

-

-

-

-

-

-

-

101110

52

USER

Возврат в пользователя

-

-

-

-

-

-

+

101111

53

ROOT

Переход в супервизора

-

-

-

-

-

-

+

110000

54

HALT

Ожидание прерывания

-

-

-

-

-

-

-

110001

55

NOP

Нет операции

PC<=PC+1

-

-

-

-

-

-

-

110010

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

56

ADDF

Сложение

<R0><= <R0>+<R1>

+

+

+

+

-

-

-

110011

57

SUBF

Вычитание

<R0><= <R0>-<R1>

+

+

+

+

-

-

-

110100

58

MULTF

Умножение

<R0><= <R0>*<R1>

+

+

+

+

-

-

-

110101

59

DIVF

Деление

<R0><= <R0>/<R1>

+

+

+

+

-

-

-

110110

60

ITOF

Преобр. ПТ-ФТ

<R0><= <R1>

+

+

+

+

-

-

-

110111

61

FTOI

Преобр. ФТ-ПТ

<R0>=> <R1>

+

-

+

+

-

-

-

111000

1. Обращение к памяти по чтению и записи

С помощью этих команд можно заносить данные и регистров в память и читать их оттуда.

2. Арифметические и логические операции с ФТ

Позволяют производить известные операции с числами с ФТ, которые хранятся в регистрах или с непосредственными операндами

3. Команды переходов и прерываний

Можно переходить в любое место программы, вызывать подпрограммы

4. Специальные операции

Позволяют работать с системными регистрами, заносить туда информацию и считывать ее оттуда. Команды WFL,RTLBR,WTLBR, RINT, WINT, RBVA, WFF доступны только в режиме супервизора (системном). В пользовательском режиме они недоступны.

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

Известные операции аналогичные с ФТ.