Курсовая работа: Эмуляция команды математического сопроцессора FSUB
После 5 теста ( fsub st0, st3), регистры неизменны.
Таблица 4.6
Название регистра | Мантисса | Порядок |
St0 | 8,7952 | 2 |
St1 | 4,562 | 3 |
St2 | денормализованый операнд | 0 |
St3 | 0 | 0 |
St4 | бесконечность | 5 |
St5 | 1,12 | 1 |
St6 | нечисло | 0 |
St7 | пусто | 0 |
После 6 теста ( fsub st0, st6); twr =98B; swr =600E (флаг IE = 1)
cwr =D
Таблица 4.7
Название регистра | Мантисса | Порядок |
St0 | 8,7952 | 2 |
St1 | 4,562 | 3 |
St2 | денормализованый операнд | 0 |
St3 | 0 | 0 |
St4 | бесконечность | 5 |
St5 | 1,12 | 1 |
St6 | нечисло | 0 |
St7 | пусто | 0 |
После 7 теста ( fsub st0, st7).
twr =98B
swr =410E (флаг IE = 1, SF = 1)
cwr =D
Таблица 4.8
Название регистра | Мантисса | Порядок |
St0 | 8,7952 | 2 |
St1 | 4,562 | 3 |
St2 | денормализованый операнд | 0 |
St3 | 0 | 0 |
St4 | бесконечность | 5 |
St5 | 1,12 | 1 |
St6 | нечисло | 0 |
St7 | пусто | 0 |
После 8 теста ( fsub st0, st4).
twr =98B
swr =600E (флаг IE = 1)
cwr =D
Таблица 4.9
Название регистра | Мантисса | Порядок |
St0 | 8,7952 | 2 |
St1 | 4,562 | 3 |
St2 | денормализованый операнд | 0 |
St3 | 0 | 0 |
St4 | бесконечность | 5 |
St5 | 1,12 | 1 |
St6 | нечисло | 0 |
St7 | пусто | 0 |
Заключение
В результате проделанной работы была написана программа, по своей сути, дублирующая команду математического сопроцессора fsub, а также её вариации. Были изучены и применены на практике в виде эмуляции 3 регистра. Регистор тегов, регистр команд и регистр состояний.
Была изучена система команд процессора 80х87 и принципы работы процессоров. Было получено представление и содержании такого устройства как процессор, что до не давнего времени было известно на уровне "черного ящика".
Приложение
П.1. Текст программы
#include<iostream>
#include<string>
#include<windows.h>
struct bits
{
unsigned char b0 : 1;
unsigned char b1 : 1;
unsigned char b2 : 1;
unsigned char b3 : 1;