- •«Санкт-Петербургский государственный электротехнический университет «лэти» имени в.И. Ульянова (Ленина)» (спбгэту)
- •2012 Г. Оглавление
- •Техническое задание
- •Предмет проектирования
- •Общие требования к разрабатываемому процессору
- •Исходные данные для курсового проектирования
- •Средства реализации модели
- •Результаты проектирования
- •Последовательность выполнения курсового проекта
- •Общая последовательность
- •Разработка архитектуры цп
- •Уточнение структуры системы
- •Разработка архитектуры внешних выводов
- •Выбор форматов данных
- •Определение модели памяти и структуры регистровой памяти
- •Выбор форматов команд
- •Разработка системы команд
- •Внутренняя организация
- •Основные алгоритмы функционирования
- •Алгоритмы работы отдельных операций
- •Временные диаграммы
- •Руководство пользователя по использованию симулятора
Разработка системы команд
Таблица 3. Система команд
N |
Мнемоника |
Тип |
Название |
Содержание |
Флаг |
Код | |||
C |
Z |
S |
I | ||||||
1 |
WM |
Память |
Запись памяти по адресу |
A <- Rn |
— |
— |
— |
— |
000001 |
2 |
RM |
Память |
Чтение памяти по адресу |
Rn <— A |
— |
— |
— |
— |
000010 |
3 |
ADD |
Арифм |
Сложение |
R0 <– R0 + R1 R0 <— R1 + R2 R3 <– R1 + R2 |
+ |
+ |
+ |
— |
000011 |
4 |
SUB |
Арифм |
Вычитание |
R0 <– R0 - R1 R0 <— R1 - R2 R3 <– R1 - R2 |
+ |
+ |
+ |
— |
000100 |
5 |
MUL |
Арифм |
Умножение |
R0 <– R0 * R1 R0 <— R1 * R2 R3 <– R1 * R2 |
+ |
+ |
+ |
— |
000101 |
6 |
DIV |
Арифм |
Деление |
R0 <– R0 / R1 R0 <— R1 / R2 R3 <– R1 / R2 |
+ |
+ |
+ |
— |
000110 |
7 |
EQ |
Лог |
Равно |
R0 <– R0 == R1 R0 <— R1 == R2 R3 <– R1 == R2 |
— |
+ |
— |
— |
000111 |
8 |
NEQ |
Лог |
Не равно |
R0 <– R0 != R1 R0 <— R1 != R2 R3 <– R1 != R2 |
— |
+ |
— |
— |
001000 |
9 |
B |
Лог |
Больше |
R0 <– R0 > R1 R0 <— R1 > R2 R3 <– R1 > R2 |
+ |
— |
— |
— |
001001 |
10 |
L |
Лог |
Меньше |
R0 <– R0 < R1 R0 <— R1 < R2 R3 <– R1 < R2 |
+ |
— |
— |
— |
001010 |
11 |
BEQ |
Лог |
Больше или равно |
R0 <– R0 >= R1 R0 <— R1 >= R2 R3 <– R1 >= R2 |
+ |
— |
+ |
— |
001011 |
12 |
LEQ |
Лог |
Меньше или равно |
R0 <– R0 <= R1 R0 <— R1 <= R2 R3 <– R1 <= R2 |
+ |
— |
+ |
— |
001100 |
13 |
AND |
Лог |
И |
R0 <– R0 & R1 R0 <— R1 & R2 R3 <– R1 & R2 |
— |
— |
— |
— |
001101 |
14 |
OR |
Лог |
ИЛИ |
R0 <– R0 | R1 R0 <— R1 | R2 R3 <– R1 | R2 |
— |
— |
— |
— |
001110 |
15 |
XOR |
Лог |
Исключающее ИЛИ |
R0 <– R0 ^ R1 R0 <— R1 ^ R2 R3 <– R1 ^ R2 |
— |
— |
— |
— |
001111 |
16 |
LSH |
Лог |
Сдвиг влево |
R0 <— R1 << R2 |
+ |
— |
— |
— |
010000 |
17 |
RSH |
Лог |
Сдвиг вправо |
R0 <— R1 >> R2 |
+ |
— |
— |
— |
010001 |
18 |
CALL |
Функ |
Вызов подпрограммы |
PC <- A |
— |
— |
— |
— |
010010 |
19 |
MOV |
Память |
Запись в регистр содержимого регистра |
Rn <– Rm |
— |
— |
— |
— |
010011 |
20 |
IN |
Память |
Чтение из порта |
Rn <- PortN |
— |
— |
— |
— |
010100 |
21 |
OUT |
Память |
Вывод в порт |
PortN <- Rn |
— |
— |
— |
— |
010101 |
22 |
RET |
Функ |
Вернуться |
PC <- R63 |
— |
— |
— |
— |
010110 |
23 |
NOP |
Нет |
Подождать |
|
— |
— |
— |
— |
010111 |
24 |
JMP |
Переход |
Безусловный переход |
PC <- A |
— |
— |
— |
— |
011000 |
25 |
JA |
Переход |
(Б/з) Переход, если больше |
PC <- A |
+ |
+ |
— |
— |
011001 |
26 |
JB |
Переход |
(Б/з) Переход, если меньше |
PC <- A |
+ |
— |
— |
— |
011010 |
27 |
JAE |
Переход |
(Б/з) Переход, если больше или равно |
PC <- A |
+ |
— |
— |
— |
011011 |
28 |
JBE |
Переход |
(Б/з) Переход, если меньше или равно |
PC <- A |
+ |
+ |
— |
— |
011100 |
29 |
JE |
Переход |
Переход, если равно |
PC <- A |
— |
+ |
— |
— |
011101 |
30 |
JNE |
Переход |
Переход, если не равно |
PC <- A |
— |
+ |
— |
— |
011110 |
31 |
JL |
Переход |
Переход, если больше |
PC <- A |
— |
— |
+ |
— |
011111 |
32 |
JGE |
Переход |
Переход, если меньше |
PC <- A |
— |
— |
+ |
— |
100000 |
33 |
JLE |
Переход |
Переход, если больше или равно |
PC <- A |
— |
+ |
+ |
— |
100001 |
34 |
JG |
Переход |
Переход, если меньше или равно |
PC <- A |
— |
+ |
+ |
— |
100010 |
35 |
AI |
Прер |
Разрешить прерывания |
I <- 0 |
— |
— |
— |
+ |
|
36 |
BI |
Прер |
Запретить прерывания |
I <- 1 |
— |
— |
— |
+ |
|
37 |
INT |
Прер |
Прерывание |
Dump Flags <- Flags Dump PC <- PC |
— |
— |
— |
+ |
|