Разработка структуры гипотетического микропроцессора и центральной части МЭВМ на его базе. Эмуляция выполнения команд
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
исунок 3.2 - Структурная схема операции умножения
Состав ОА:
1)НСМ - накапливающий сумматор (первый операнд);
2)РМт - регистр множителя;
)РМн - регистр множимого;
)СТ - счетчик тактов.
Список микроопераций:
1)Y1: НСМ:=0;
2)Y2: НСМ:=0.R1(НСМ);
3)Y3: НСМ:=НСМ+РМн;
4)Y4: РМт:=НСМ[n].R1(РМт);
5)Y5: СТ:=n;
6)Y6: СТ:=СТ-1;
)Y7: 0F :=1;
8)Y8: 0F :=0.
Осведомительные сигналы:
1)X1: РМт[n];
2)X2: СТ=0;
)X3: НСМ=0.
3.1.3 Разработка ОА для операции декремента DEC
Структурная схема операции DEC приведена на рисунке 3.3.
Рисунок 3.3 Структурная схема операции декремента
Список микроопераций:
) Y1: Р1:=Р1 - 1.
3.2 Разработка общего ОА АЛУ
На рисунке 3.4 приведена структурная схема общего ОА АЛУ.
Рисунок 3.4 Структурная схема ОА АЛУ ЗМО
Состав ОА:
1)НСМ - накапливающий сумматор;
2)Р1 - регистр (первый операнд);
)Р2 - регистр (второй операнд);
)СТ - счетчик тактов;
)ТП - триггер переполнения;
)РКО - регистр кода операции;
7)BR1, BR2 - буферные регистры.
Список микроопераций:
1)Y1: НСМ:=0;
2)Y2: НСМ:=BR1;
3)Y3: Р1:=BR1;
4)Y4: Р2:=BR2;
5)Y5: НСМ:=0.R1(НСМ);
6)Y6: НСМ:=НСМ+Р2;
7)Y7: Р1:=НСМ[n].R1(Р1);
8)Y8: СТ:=n;
9)Y9: СТ:=СТ-1;
10)Y10: НСМ := НСМ + Р2;
11)Y11: НСМ := НСМ + Р2[1]Р2[1]. Р2[2:n];
12)Y12: НСМ := НСМ[1] НСМ[п]. НСМ[2:n];
13)Y13: ТП :=1;
14)Y14: Р1:= Р1-1;
15)Y15: CF:= 0;
16)Y16: CF:= 1;
17)Y17: OF:= 0;
18)Y18: OF:= 1;
19)Y19: РКО:= КОП;
20)Y20: АЛУ:= 0;
21)Y21: РР[0:n] := НСМ;
22)Y22: РР[n+1:2n]:= Р1. Осведомительные сигналы:
1)X1: Р1[n];
2)X2: НСМ[1];
3)X3: НСМ[п];
4)X4: СТ=0;
5)X5: РКО = ADD;
6)X6: РКО = MUL;
7)X7: РКО = DEC;
8)X8: АЛУ;
9)X10: НСМ.
3.3 Разработка микропрограмм выполнения операций в АЛУ
3.3.1 Арифметическая операция сложения ADD
На рисунке 3.5 изображена микропрограмма сложения:
Рисунок 3.5 - Микропрограмма сложения
Команда ADD выполняет сложение побитно. При переполнении ТП устанавливается в единицу.
3.3.2 Арифметическая операция беззнакового умножения MUL по алгоритму с младших разрядов множителя со сдвигом частичных сумм вправо
На рисунке 1.5 изображен алгоритм умножения по алгоритму с младших разрядов множителя со сдвигом частичных сумм вправо:
Рисунок 3.6 - Микропрограмма умножения
MUL- целочисленное умножение без знака AL или AX на заданный операнд (регистр или переменная) и помещает результат в AX или AX:DX, соответственно. Если результат операции превосходит размер операнда, то OF и CF устанавливаются в 1, иначе оба флага сбрасываются.
3.3.3 Арифметическая операция декремента DEC
На рисунке 3.7 изображенa микропрограмма декремента:
Рисунок 3.7 - Микропрограмма декремента
Команда DEC выполняет вычитание единицы из операнда.
3.4 Разработка объединенной микропрограммы АЛУ
Данная микропрограмма выполняет три команды: ADD, MUL и DEC.
На рисунке 3.8 представлена объединенная микропрограмма АЛУ.
Рисунок 3.8 - Микропрограмма работы АЛУ
4. РАЗРАБОТКА ГИПОТЕТИЧЕСКОГО МИКРОПРОЦЕССОРA
4.1 Разработка структуры микропроцессора
Поскольку в данном проекте реализуется выполнение лишь нескольких команд, то структура микропроцессора значительно упрощается по сравнению со структурой процессора-прототипа. Такая упрощенная структура изображена на рисунке 4.1.
Рисунок 4.1 Структура гипотетического микропроцессора
Состав:
1.БАД - буфер адреса данных;
2.СФА - сумматор физического адреса;
.Сегментные регистры:
-CS - регистр сегмента кода;
-DS - регистр сегмента данных.
4.EIP - программный счетчик (указатель программы);
5.BR1, BR2 - буферные регистры операндов АЛУ;
.РО - регистр обмена;
.ОК - очередь команд;
.РК - регистр команд;
.Регистры общего назначения:
-EAX - аккумулятор;
-ECX - счетчик;
-EDX - регистр данных.
10.Регистры циклов:
-ESI - смещение для источника;
-EDI - смещение для приемника.
11.АЛУ - арифметико-логическое устройство;
12.РФ - регистр флагов;
.РР - регистр результата;
.МУУ - местное устройство управление;
.УУ и С - устройство управления и синхронизации
.ША - шина данных;
.ШД - шина адреса.
Осведомительные сигналы пуск и стоп запускают и прекращают работу микропроцессора соответственно.
4.2 Система команд микропроцессора
Система команд гипотетического микропроцессора включает шесть команд: арифметические команды ADD, MUL и DEC, команду пересылки MOV и команды перехода JMP и JA.
4.2.1 Команда ADD AL,imm8
Команда ADD выполняет сложение побитно.
Код операции: 82 C0 или 14 XX,
где XX - непосредственный операнд (8 бит).
Размер команды: 16 бит.
Алгоритм выполнения:
) извлечь из регистра значение;
2) поместить непосредственный операнд в ОП;
) поместить операнды в АЛУ;
) выполнить ADD;
) извлечь результат и поместить в регистр;
) установить значения флагов.
4.2.2 Команда MUL r8
Команда MUL выполняет умножение беззнаковых двоичных чисел. MUL воспринимает старший бит в качестве бита данных, а не бита знака. Операция подразумевает, что множимое располагается в регистре AL. Результаты помещаются в AX.
Влияет на состояние флагов CF и OF следующим образом(флаги AF, PF, SF и ZF не определены): если старшая половина результата (AH) содержит только нули, т. е. результат целиком помещается в младшей половине, то флаги CF и OF устанавливаются в н?/p>