
- •Введение
- •1 Анализ структуры микропроцессора прототипа и алгоритмов выполнения заданного подмножества команд
- •1.1 Структура микропроцессора-прототипа
- •1.2 Адресация основной памяти
- •1.3 Анализ способов адресации операндов и алгоритмов выполнения заданного подмножества команд
- •2 Постановка задач проекта
- •2.1 Требования к структуре и интерфейсу гипотетического микропроцессора
- •2.2 Требования к структуре и интерфейсу алу микропроцессора
- •2.3 Требования к структуре микро эвм
- •3 Разработка алу микропроцессора
- •3.1 Разработка оа для отдельных операций алу
- •3.1.1 Разработка оа для операции сложения add
- •3.1.2 Разработка оа для операции умножения по алгоритму с младших разрядов множителя со сдвигом частичных сумм вправо mul(a)
- •3.1.3 Разработка оа для операции декремента dec
- •3.2 Разработка общего оа алу
- •3.3 Разработка микропрограмм выполнения операций в алу
- •3.3.1 Арифметическая операция сложения add
- •3.3.2 Арифметическая операция беззнакового умножения mul по алгоритму с младших разрядов множителя со сдвигом частичных сумм вправо
- •4.2 Система команд микропроцессора
- •4.2.1 Команда add al,imm8
- •4.2.2 Команда mul r8
- •5.2 Организация шин микро-эвм
- •5.3 Организация озу
- •5.4 Микропрограмма работы микро-эвм
- •6 Разработка программы эмуляции работы микро-эвм
- •6.1 Постановка задачи
- •6.2 Алгоритм работы программы эмуляции
- •6.3 Список процедур и функций
- •6.4 Анализ результатов тестирования программы
- •Перечень ссылок
- •Приложение а техническое задание на разработку микроэвм
- •Приложение б техническое задание на программу-эмулятор
- •Приложение в руководство пользователя
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 Структура гипотетического микропроцессора
Состав:
БАД – буфер адреса данных;
СФА – сумматор физического адреса;
Сегментные регистры:
CS – регистр сегмента кода;
DS – регистр сегмента данных.
EIP – программный счетчик (указатель программы);
BR1, BR2 – буферные регистры операндов АЛУ;
РО – регистр обмена;
ОК – очередь команд;
РК – регистр команд;
Регистры общего назначения:
EAX – аккумулятор;
ECX – счетчик;
EDX – регистр данных.
Регистры циклов:
ESI – смещение для источника;
EDI – смещение для приемника.
АЛУ – арифметико-логическое устройство;
РФ – регистр флагов;
РР – регистр результата;
МУУ – местное устройство управление;
УУ и С – устройство управления и синхронизации
ША – шина данных;
ШД – шина адреса.
Осведомительные сигналы пуск и стоп запускают и прекращают работу микропроцессора соответственно.
4.2 Система команд микропроцессора
Система команд гипотетического микропроцессора включает шесть команд: арифметические команды ADD, MUL и DEC, команду пересылки MOV и команды перехода JMP и JA.
4.2.1 Команда add al,imm8
Команда ADD выполняет сложение побитно.
Код операции: 82 C0 или 14 XX,
где XX – непосредственный операнд (8 бит).
Размер команды: 16 бит.
Алгоритм выполнения:
1) извлечь из регистра значение;
2) поместить непосредственный операнд в ОП;
3) поместить операнды в АЛУ;
4) выполнить ADD;
5) извлечь результат и поместить в регистр;
6) установить значения флагов.
4.2.2 Команда mul r8
Команда MUL выполняет умножение беззнаковых двоичных чисел. MUL воспринимает старший бит в качестве бита данных, а не бита знака. Операция подразумевает, что множимое располагается в регистре AL. Результаты помещаются в AX.
Влияет на состояние флагов CF и OF следующим образом(флаги AF, PF, SF и ZF не определены): если старшая половина результата (AH) содержит только нули, т. е. результат целиком помещается в младшей половине, то флаги CF и OF устанавливаются в нуль, иначе – в единицу.
Код операции: |11110110|mod 100 reg|,гре mod – два бита режима адресации, reg – три бита регистра.
Размер команды: 16 бит.
В данном ПП данная команда реализована в виде MUL BL, ее машинный код – F6E3.
Алгоритм выполнения команды:
извлечь из AL значение;
извлечь значение из BL;
установить n = 8;
выполнить операцию умножения для n-го разряда;
установить n : =n – 1;
если n равно 0, то закончить выполнение, иначе перейти к пункту 4;
поместить результат в АХ;
установить значение флагов.
4.2.3 Команда DEC AL
Команда DEC уменьшает значение операнда на единицу, не влияет на флаги. В роли операнда может выступать память/регистр размерностью один или два байта. В данном ПП используются такие параметры:
Код операции:FE C8
Размер команды: 16 бит.
Алгоритм выполнения команды:
1) уменьшить AL на единицу.
4.2.4 Команда MOV r/m8,r8
MOV – пересылает регистр в регистр/память размерностью 8 бит.
Код операции: 88 XX
где R – код регистра, XX – код заданного регистра (8 бит).
Размер команды: 16 бит.
Алгоритм выполнения:
1) извлечь регистр;
2) пересылка данных в регистр/память.
4.2.5 Команда JMP (относительная адресация)
Команда JMP выполняет переход к заданной метке.
Формат команды: EB SS,
где S – смещение.
Размер команды: 16 бит.
Алгоритм выполнения:
к содержимому регистра IP прибавляется смещение метки.
4.2.6 Команда JА (относительная адресация)
Команда JА выполняет переход к заданной метке при условии, что флаги СF и ZF равны нулю.
Формат команды: 77 SS,
где S – смещение.
Размер команды: 16 бит.
Алгоритм выполнения:
1) к содержимому регистра IP прибавляется смещение метки.
5 РАЗРАБОТКА СТРУКТУРЫ ЦЕНТРАЛЬНОЙ ЧАСТИ МИКРОЭВМ НА БАЗЕ ГИПОТЕТИЧЕСКОГО МИКРОПРОЦЕССОРА
5.1 Разработка структуры микроЭВМ
На базе спроектированного микропроцессора можно построить микро-ЭВМ, структурная схема которой, как и схема самого микропроцессора, в значительной мере отражает функциональные возможности системы команд микропроцессора. Так для данного ограниченного набора команд нецелесообразно использовать сложную операционную систему, поэтому можно ограничиться ПЗУ, которое содержало бы базовый набор команд ввода-вывода, и позволяло загружать несколько программ в оперативную память, следовательно, нам необходимо ОЗУ и периферийное устройство. Шинный интерфейс будет выглядеть так: шина данных – 20 бит, шина адреса – 32 бита, шина управления – 4 бит. Структурная схема микро-ЭВМ приведена на рисунке 5.1.
Рисунок 5.1 – Структурная схема микро-ЭВМ
Состав схемы на рисунке 4.1:
1) МП- разработанный гипотетический микропроцессор (координирует работу устройств микро-ЭВМ);
2) ОЗУ- оперативное запоминающее устройство (хранит программы выполнения);
3) ПЗУ- постоянное запоминающее устройство;
4) ПУ – периферийные устройства (служат для обмена информации с внешним миром).