- •Курсовая работа
- •2. Разработка структуры цп
- •2.1 Структурная схема разрабатываемой системы
- •2.2 Структура регистровой памяти
- •2.3 Форматы данных, команд и способы адресации
- •2.3.1 Форматы данных
- •2.3.2 Формат команд
- •2.3.3 Способы адресации
- •2.4 Внутренняя организация
- •2.5 Основные алгоритмы функционирования
- •2.6 Алгоритмы выполнения отдельных операций.
- •2.7 Алгоритмы выполнения операций на шине.
2.3.3 Способы адресации
В соответствии с техническим заданием, требуется осуществить 3 способа адресации.
Прямая адресация
Прямой адрес – номер ячейки памяти, в которой хранится операнд.
Исполнительный адрес AИСП=A.
Косвенная адресация
В адресной части команды Aуказывается адрес адреса операнда.
Относительная адресация
Исполнительный адрес формируется следующим образом:
AИСП=A+X, где
A– базовый адрес, указываемый в адресном поле команды;
X– относительный адрес (индекс), указывающий положение данного, относительно базового адресаA.
2.3.4 Система команд
N |
Мнемоника |
ФК |
Название |
Содержание |
Флажок |
Код | ||
C |
Z |
S |
| |||||
1 |
ADD |
а |
Сложение с ФТ |
R1 R1 + R3 |
+ |
+ |
+ |
000001 |
2 |
SUB |
а |
Вычитание с ФТ |
R1 R1 – R3 |
+ |
+ |
+ |
000010 |
3 |
MUL |
а |
Умножение с ФТ |
R1 R1 * R3 |
+ |
+ |
+ |
000011 |
4 |
DIV |
а |
Деление с ФТ |
R1 R1 /R3 |
+ |
+ |
+ |
000100 |
5 |
FADD |
а |
Сложение с ПТ |
R1 R1 + R3 |
+ |
+ |
+ |
000101 |
6 |
FSUB |
а |
Вычитание с ПТ |
R1 R1 – R3 |
+ |
+ |
+ |
000111 |
7 |
FMUL |
а |
Умножение с ПТ |
R1 R1 * R3 |
+ |
+ |
+ |
001000 |
8 |
FDIV |
а |
Деление с ПТ |
R1 R1 /R3 |
+ |
+ |
+ |
001001 |
9 |
STS |
б |
Запись в ОЗУ |
[A] R1 |
- |
|
- |
001010 |
10 |
LDS |
б |
Чтение из ОЗУ |
R1 [A] |
- |
- |
- |
001011 |
11 |
AND |
а |
Логическое «И» |
R1 R1 and R2 |
+ |
+ |
- |
0001100 |
12 |
EOR |
а |
Исключающее «ИЛИ» |
R1 R1 xor R2 |
+ |
+ |
- |
001101 |
13 |
OR |
а |
Логическое «ИЛИ» |
R1 R1 or R2 |
+ |
+ |
- |
001110 |
14 |
JCC |
в |
Условный переход |
A R2+disp |
+ |
+ |
+ |
001111 |
15 |
JMP |
в |
Безусловный переход |
A R2+disp |
- |
- |
- |
010000 |
16 |
MOV |
а |
Пересылка между РОН |
R1 R2 |
- |
- |
- |
010001 |
17 |
BREAK |
в |
Приостановка программы |
- |
- |
- |
- |
010010 |
18 |
JP |
в |
Безусловный переход |
A А1 |
- |
- |
- |
010011 |
19 |
JPC |
в |
Переход если C=1 |
A А1 |
- |
- |
- |
010100 |
20 |
JPZ |
в |
Переход если Z=1 |
A А1 |
- |
- |
- |
010101 |
21 |
JPS |
в |
Переход если S=1 |
A А1 |
- |
- |
- |
010110 |
22 |
JPNC |
в |
Переход если C1 |
A А1 |
- |
- |
- |
010111 |
23 |
JPNZ |
в |
Переход если Z1 |
A А1 |
- |
- |
- |
011000 |
24 |
JPNS |
в |
Переход если S1 |
A А1 |
- |
- |
- |
011001 |
25 |
CALL |
в |
Вызов подпрограммы |
A A1 |
- |
- |
- |
011010 |
26 |
RET |
в |
Возврат из подпрограммы |
A stack |
- |
- |
- |
011011 |
27 |
AI |
в |
Разрешить прерывания |
I 0 |
- |
- |
- |
011100 |
28 |
BI |
в |
Запретить прерывания |
I 1 |
- |
- |
- |
011101 |
29 |
RLCR |
а |
Циклический сдвиг влево |
РЕГА1<<1 |
|
|
|
011110 |
30 |
RRCR |
а |
Циклический сдвиг вправо |
РЕГА1>>1 |
|
|
|
011111 |
31 |
MOVC |
а |
Запись регистр/константа |
РЕГ<=А1.А2 |
|
|
|
100000 |