- •1. Техническое задание
- •1.1. Предмет проектирования
- •1.2. Общие требования
- •1.3. Исходные данные
- •2.2. Разработка архитектуры цп
- •2.2.1. Уточнение структуры системы
- •2.2.2. Архитектура внешних выводов
- •2.2.3. Выбор форматов данных
- •2.2.4. Выбор формата команд
- •2.2.5. Определение модели памяти
- •2.2.6. Разработка системы команд
- •2.2.7. Разработка системы команд
2.2.5. Определение модели памяти
Структура регистровой памяти представляет собой
восемь 16-разрядных функционально-ориентированных (ФО) регистров;
один 16-разрядный регистр PC– счётчик команд, а также один 16-разрядный регистрPCI, хранящий адрес команды, выполнение которой было прервано при прерывании;
два 6-разрядных регистра, хранящих флаги, один из которых необходим для сохранения флагов при прерывании;
…
2.2.6. Разработка системы команд
В соответствии с выбранными форматами команд были выбраны сами команды. Результат проектирования – в таблице ниже.
Как было указано в предыдущем пункте, номер формата команды состоит из значений полей Пi, т.е. из следующих значений:
0 – операнд не используется;
1 – непосредственная;
2 – прямая;
3 – относительная;
В некоторых случаях указан формат команды в формате x.x.0,x= 2,3. Это означает, что эта команда имеет несколько схожих форматов, отличающихся лишь типом адресации. В данном примере – 2.2.0, 2.3.0, 3.2.0, 3.3.0.
№ |
Мнемо-ника |
Описание |
Содержание |
Флаги |
Фор-мат |
КОП | |||||
Z |
C |
S |
O |
I |
T | ||||||
Прерывания Маска: 0000XX | |||||||||||
00 |
INT |
Вызов прерывания |
PCI ← PC FI ← F |
Z |
C |
S |
O |
|
T |
1.0.0 2.0.0 3.0.0 |
000000 |
01 |
RI |
Запретить прерывания (сбросить флаг) |
I = 0 |
|
|
|
|
I |
|
|
000001 |
02 |
SI |
Разрешить прерывания (установить флаг) |
I = 1 |
|
|
|
|
I |
|
|
000010 |
03 |
IRET |
Возврат из прерывания |
PCI → PC FI → F |
Z |
C |
S |
O |
|
T |
|
000011 |
Чтение / Запись Маски: 0001XX, 0010XX, 0011XX | |||||||||||
04 |
MOV |
Передача данных из источника в приёмник |
A1 ← A2 |
|
|
|
|
|
|
|
000100 |
05 |
IN |
Чтение из порта |
A1 ← [address] |
|
|
|
|
|
|
|
|
06 |
OUT |
Запись в порт |
A2 → [address] |
|
|
|
|
|
|
|
|
07 |
WR |
|
|
|
|
|
|
|
|
|
|
Логические операции Маски: 0100XX | |||||||||||
16 |
AND |
Побитовое логическое «И» |
A3 ← A2 & A1 |
|
|
|
|
|
|
x.x.x, x=2,3 |
010000 |
17 |
OR |
Побитовое логическое «ИЛИ» |
A3 ← A2 | A1 |
|
|
|
|
|
|
x.x.x, x=2,3 |
010001 |
18 |
XOR |
Побитовое логическое «исключающее ИЛИ» |
A3 ← A2 ^ A1 |
|
|
|
|
|
|
x.x.x, x=2,3 |
010010 |
19 |
NOT |
Инверсия операнда |
A2 → NOT A1 |
|
|
|
|
|
|
y.x.0, x=2,3, y=1,2,3 |
010011 |
Переходы Маски: 0101XX, 0110XX, 0111XX | |||||||||||
20 |
CALL |
|
|
|
|
|
|
|
|
|
010100 |
21 |
RET |
|
|
|
|
|
|
|
|
|
010101 |
22 |
JMP |
|
|
|
|
|
|
|
|
|
010110 |
23 |
JZ |
|
|
|
|
|
|
|
|
|
010111 |
24 |
JNZ |
|
|
|
|
|
|
|
|
|
011000 |
25 |
JO |
|
|
|
|
|
|
|
|
|
011001 |
26 |
JNO |
|
|
|
|
|
|
|
|
|
011010 |
27 |
JC |
|
|
|
|
|
|
|
|
|
011011 |
28 |
JNC |
|
|
|
|
|
|
|
|
|
011100 |
29 |
JS |
|
|
|
|
|
|
|
|
|
011101 |
30 |
JNS |
|
|
|
|
|
|
|
|
|
011110 |
31 |
|
|
|
|
|
|
|
|
|
|
011111 |
Арифметические операции без знака Маски: | |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Арифметические операции со знаком Маски: | |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Арифметические операции с ПТ Выполняются на арифметическом сопроцессоре Маски: | |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Разное Маски: - | |||||||||||
63 |
NOP |
Нет операции |
|
|
|
|
|
|
|
0.0.0 |
111111 |