- •Оглавление
- •Техническое задание
- •Предмет проектирования
- •Общие требования к разрабатываемому процессору
- •Исходные данные для курсового проектирования
- •Средства реализации модели
- •Результаты проектирования
- •Последовательность выполнения курсового проекта
- •Общая последовательность
- •Разработка архитектуры цп
- •Уточнение структуры системы
- •Разработка архитектуры внешних выводов
- •Выбор форматов данных
- •Определение модели памяти и структуры регистровой памяти
- •Рисунки 4 и 5
- •Выбор форматов команд
- •Разработка системы команд
- •Внутренняя организация
Разработка системы команд
Таблица 3. Система команд
N |
Мнемоника |
Название |
Содержание |
Флаг |
Код | ||
C |
Z |
S | |||||
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 |
SB |
Вызов подпрограммы |
A |
— |
— |
— |
010010 |
19 |
MOV |
Запись в регистр содержимого регистра |
Rn <– Rm |
— |
— |
— |
010011 |
20 |
ECHO |
Вывод на экран |
|
— |
— |
— |
010100 |
21 |
KBD |
Ввод с клавиатуры |
|
— |
— |
— |
010101 |
22 |
BRK |
Прервать |
|
— |
— |
— |
010110 |
23 |
NOP |
Подождать |
|
— |
— |
— |
010111 |
24 |
JMP |
Безусловный переход |
|
— |
— |
— |
011000 |
25 |
JA |
(Б/з) Переход, если больше |
|
+ |
+ |
— |
011001 |
26 |
JB |
(Б/з) Переход, если меньше |
|
+ |
— |
— |
011010 |
27 |
JAE |
(Б/з) Переход, если больше или равно |
|
+ |
— |
— |
011011 |
28 |
JBE |
(Б/з) Переход, если меньше или равно |
|
+ |
+ |
— |
011100 |
29 |
JE |
Переход, если равно |
|
— |
+ |
— |
011101 |
30 |
JNE |
Переход, если не равно |
|
— |
+ |
— |
011110 |
31 |
JL |
Переход, если больше |
|
— |
— |
+ |
011111 |
32 |
JGE |
Переход, если меньше |
|
— |
— |
+ |
100000 |
33 |
JLE |
Переход, если больше или равно |
|
— |
+ |
+ |
100001 |
34 |
JG |
Переход, если меньше или равно |
|
— |
+ |
+ |
100010 |
35 |
|
|
|
|
|
|
100011 |