a | b | ma | mb | mem | src | sh | n | alu | ccx | f | dst | wm | jfi | cc | cha | const |
3 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | C | 0 | 0 | 4 | 0 | 0 | 0 | 6 | 000F |
MK9 AX=1 | ||||||||||||||||
0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 6 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 0001 |
MK A RGQ=BP | ||||||||||||||||
0 | 5 | 0 | 0 | 0 | 1 | 6 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 7 | 0000 |
MK B BP=0 | ||||||||||||||||
0 | 5 | 0 | 0 | 0 | 5 | 0 | 0 | 6 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 0000 |
MK C IF (SI & AX)=0 GOTO E | ||||||||||||||||
0 | 6 | 0 | 0 | 0 | 1 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 1 | 3 | 000E |
MK D DI=DI+BP | ||||||||||||||||
5 | 7 | 0 | 0 | 0 | 1 | 0 | 0 | 3 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 0000 |
MK E BP=L1(BP, RGQ) | ||||||||||||||||
0 | 5 | 0 | 0 | 0 | 1 | A | 1 | 4 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 0000 |
MK F SI=R1(SI) RACT=RACT-1 If RACT=0 GOTO C | ||||||||||||||||
0 | 6 | 0 | 0 | 0 | 1 | 2 | 1 | 4 | 0 | 0 | 4 | 0 | 0 | 0 | 4 | 000C |
MK 10 DI=L1(DI) | ||||||||||||||||
0 | 7 | 0 | 0 | 0 | 1 | 8 | 1 | 4 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 0000 |
MK 11 HALT | ||||||||||||||||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 6 | 0 | 0 | 0 | 0 | 5 | 0 | 7 | 0000 |
5 этап. Значения исходных данных и результатов.
Исходные данные:
1-ый операнд: 3FFFA000
BX = 3FFF
BP = A000
2-ой операнд: 3FFE C000
CX = 3FFE
SI = C000
Результат: 3FFEF000
DX = 3FFE
DI = F000
6 этап. Трасса программы (таблица 7.2).
Таблица 7.2 – Трасса программы.
AX | BX | BP | CX | SI | DX | DI | RGQ | CMK | RFI | RACT |
0000 | 3FFF | A000 | 3FFE | C000 | 0000 | 0000 | 0000 | 0000 | 00 | 0000 |
3FFF | 3FFF | A000 | 3FFE | C000 | 0000 | 0000 | 0000 | 0001 | 00 | 0000 |
0001 | 3FFF | A000 | 3FFE | C000 | 0000 | 0000 | 0000 | 2 | 10 | 0000 |
0000 | 3FFF | A000 | 3FFE | C000 | 0000 | 0000 | 0000 | 3 | 04 | 0000 |
0000 | 3FFF | A000 | 3FFE | C000 | 0000 | 0000 | 0000 | 4 | 04 | 0000 |
0000 | 3FFF | A000 | 3FFE | C000 | 0000 | 0000 | 0000 | 5 | 00 | 0000 |
0000 | 3FFF | A000 | 3FFE | C000 | 0000 | 0000 | 0000 | 6 | 10 | 0000 |
0000 | 7FFD | A000 | 3FFE | C000 | 0000 | 0000 | 0000 | 7 | 00 | 0000 |
0000 | 3FFE | A000 | 3FFE | C000 | 0000 | 0000 | 0000 | 8 | 10 | 0000 |
0000 | 3FFE | A000 | 3FFE | C000 | 3FFE | 0000 | 0000 | 9 | 10 | 000F |
0001 | 3FFE | A000 | 3FFE | C000 | 3FFE | 0000 | 0000 | A | 10 | 000F |
0001 | 3FFE | A000 | 3FFE | C000 | 3FFE | 0000 | A000 | B | 0A | 000F |
0001 | 3FFE | 0000 | 3FFE | C000 | 3FFE | 0000 | A000 | C | 04 | 000F |
0001 | 3FFE | 0000 | 3FFE | C000 | 3FFE | 0000 | A000 | E | 04 | 000F |
0001 | 3FFE | 0001 | 3FFE | C000 | 3FFE | 0000 | 4000 | F | 04 | 000F |
0001 | 3FFE | 0001 | 3FFE | 6000 | 3FFE | 0000 | 4000 | C | 0A | 000E |
0001 | 3FFE | 0001 | 3FFE | 6000 | 3FFE | 0000 | 4000 | E | 04 | 000E |
0001 | 3FFE | 0002 | 3FFE | 6000 | 3FFE | 0000 | 8000 | F | 00 | 000E |
0001 | 3FFE | 0002 | 3FFE | 3000 | 3FFE | 0000 | 8000 | C | 00 | 000D |
… | … | … | … | … | … | … | … | … | … | … |
0001 | 3FFE | 2800 | 3FFE | 0003 | 3FFE | 0000 | 0000 | C | 00 | 0001 |
0001 | 3FFE | 2800 | 3FFE | 0003 | 3FFE | 0000 | 0000 | D | 10 | 0001 |
0001 | 3FFE | 2800 | 3FFE | 0003 | 3FFE | 2800 | 0000 | E | 00 | 0001 |
0001 | 3FFE | 5000 | 3FFE | 0003 | 3FFE | 2800 | 0000 | F | 00 | 0001 |
0001 | 3FFE | 5000 | 3FFE | 0001 | 3FFE | 2800 | 0000 | C | 10 | 0000 |
0001 | 3FFE | 5000 | 3FFE | 0001 | 3FFE | 2800 | 0000 | D | 10 | 0000 |
0001 | 3FFE | 5000 | 3FFE | 0001 | 3FFE | 7800 | 0000 | E | 00 | 0000 |
0001 | 3FFE | A000 | 3FFE | 0001 | 3FFE | 7800 | 0000 | F | 00 | 0000 |
0001 | 3FFE | A000 | 3FFE | 0000 | 3FFE | 7800 | 0000 | 10 | 00 | 0000 |
0001 | 3FFE | A000 | 3FFE | 0000 | 3FFE | F000 | 0000 | 11 | 00 | 0000 |
0001 | 3FFE | A000 | 3FFE | 0000 | 3FFE | F000 | 0000 | 12 | 10 | 0000 |
7 этап. Проверка вручную правильности результата.
а) BX=3FFF BP=A000 =>
S1=0, E1=3FFF, M1=A000
П1=3FFF-3FFF=0
X=1,010*1=1,012=1,2510
б) CX=3FFF SI=C000 =>
S2=0, E2=3FFE, M2=C000
П2=3FFE-3FFF=-1
Y=0,11002=0,7510
в) X*Y=0,75*1,25= 0,9375=(15/16)10=0,11112
П3=-1, E3=3FFE, M1=1,1112=F00016
DX=3FFE, DI=F000
Целью данного курсового проекта является разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486, изучение структуры сопроцессора FPU. В результате выполнения данной работы был расписан принцип выполнения операций, разработаны блок-схемы выполнения этих операций, построены структурные схемы основных блоков процессора.
Грамотная разработка подобных устройств дает необходимые первичные навыки будущим инженерам различных специальностей.
Список использованных источников
1. Григорьев В.Л. Микропроцессор i486. Архитектура и программирование (в четырех книгах). М.: ГРАНАЛ, 1993. 382 с.
2. Григорьев В.Л. Архитектура и программирование арифметического сопроцессора. М.: Энергоатомиздат, 1991.
3. Злобин В.К., Григорьев В.Л. Программирование арифметических операций в микропроцессорах: учебное пособие для технических вузов, М: Высш. шк., 1991, 303 с.
4. Исследование микропрограммируемого процессора: методические указания к лабораторным работам / РГРТА; Сост.: Волковыский В.Л., Елесина С.И., Никифоров М.Б. Рязань, 2001, 40 с.
5. Проектирование процессора с плавающей точкой: методические указания к лабораторным работам / РГРТА; Сост.: Волковыский В.Л., Елесина С.И. Рязань, 2003, 32 с.