- •Министерство образования рф эту (лэти)
- •Современных эвм”
- •Содержание
- •1. Задание на курсовое проектирование
- •4. Форматы данных, команд и способы адресации
- •5.1. Логика установки флажков
- •6. Архитектура внешних выводов кристалла цп
- •7. Временные диаграммы выполнения основных операций на шине
- •9 Ао уПi квв ло бп бпв Ост Нет Да Нет Да Рис. 7. Обобщённый алгоритм функционирования
- •10. Алгоритмы выполнения отдельных операций
- •10.1. Выборка команды
- •10.2. Обработка адресной части команды
- •10.3. Арифметические и логические операции
4. Форматы данных, команд и способы адресации
4.1. Форматы данных
Разрабатываемый процессор, в соответствии с техническим заданием, работает с тремя форматами данных: слово, двойное слово и число с плавающей точкой одинарной точности (см. рис. 3).
Числа с фиксированной точкой представляют собой целые со знаком или без него. Целые числа со знаком представляются в дополнительных кодах.
А
Рис. 3
4.2. Формат команд
Все команды имеют один формат (см. рис. 4).
В
AMD
КОП SRS2 DEST SRS1 IMM
7
бит
2
бит
5
бит
1
бит
5
бит
12
бит
В
Рис. 4
25 0
31
24
22
18
17
13
11
12
23
Бит 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 |
Переход если C1 |
A SRS2 |
- |
- |
- |
- |
0010101 |
22 |
JPNZ |
Переход если Z1 |
A SRS2 |
- |
- |
- |
- |
0010110 |
23 |
JPNS |
Переход если S1 |
A SRS2 |
- |
- |
- |
- |
0010111 |
24 |
CALL |
Вызов подпрограммы |
A SRS2 |
- |
- |
- |
- |
0011000 |
25 |
RET |
Возврат из подпрограммы |
A stack |
- |
- |
- |
- |
0011001 |
26 |
OUT |
Выдача данных в порт |
A SRS2 |
- |
- |
- |
- |
0011010 |
27 |
IN |
Приём данных из порта |
A SRS2 |
- |
- |
- |
- |
0011011 |