Эмуляция команды математического сопроцессора FSUB - Курсовая работа

бесплатно 0
4.5 92
Анализ процесса обработки информации и выбор структур данных для хранения. Методы решения задачи и разработка основных алгоритмов предметной области. Структурная схема программного продукта. Описание эмуляции команды FSUB математического сопроцессора.


Аннотация к работе
Реалии нашего времени диктуют тот факт, что определяющим качеством товара является его стоимость. Это связано, в основном, с большим ассортиментом каждого устройства, какой бы не был необходим пользователю. Но русские не сдаются и по этому китайский ширпотреб и соответствующая ему культура деловых отношений будет существовать еще долго.· В модуле CRT имеется ошибка (некорректный подсчет количества циклов для функции delay, не рассчитанный на быстрые процессоры, процессоры с переменной частотой и многозадачные среды), изза которой при запуске программы на компьютерах с тактовой частотой более 200 MHZ сразу происходило аварийное завершение с сообщением "Runtime error 200 at…". · Если код программы достаточно большой, данные, которыми он оперирует, не помещаются целиком в регистрах процессора, т.е. частично или полностью находятся в оперативной памяти, то искусный программист, как правило, способен значительно оптимизировать программу по сравнению с высокоуровневыми трансляторами по одному или нескольким параметрам: скорость работы (за счет оптимизации вычислений и/или более рационального обращения к ОП, перераспределения данных), объем кода (в том числе за счет эффективного использования промежуточных результатов). · В силу своей машинной ориентации ("низкого" уровня) человеку по сравнению с языками программирования высокого уровня сложнее читать и понимать программу, она состоит из слишком "мелких" элементов - машинных команд, соответственно усложняются программирование и отладка, растет трудоемкость, велика вероятность внесения ошибок. Язык спроектирован так, чтобы дать программисту максимальный контроль над всеми аспектами структуры и порядка исполнения программы. · Высокая совместимость с языком С, позволяющая использовать весь существующий С-код (код С может быть с минимальными переделками скомпилирован компилятором С ; библиотеки, написанные на С, обычно могут быть вызваны из С непосредственно без каких-либо дополнительных затрат, в том числе и на уровне функций обратного вызова, позволяя библиотекам, написанным на С, вызывать код, написанный на С ).Таблица 2.1 тип имя переменной размер(бит) unsigned char b0 1 unsigned char b1 1 unsigned char b2 1 unsigned char b3 1 unsigned char b4 1 unsigned char b5 1 unsigned char b6 1 unsigned char b7 1 Структура bits объединена в структур bait_tabc полями в таблице 2.2 Определим структуры для мантиссы и порядка: Структура ud16 с полями в таблице 2.3 Таблица 2.7 тип имя переменной размер(бит) unsigned IE 1 unsigned DE 1 unsigned ZE 1 unsigned OE 1 unsigned UE 1 unsigned PE 1 unsigned SF 1 unsigned ES 1 unsigned C0 1 unsigned C1 1 unsigned C2 1 unsigned TOP 3 unsigned C3 1 unsigned B 1 Структура _creg, включает в себя следующую структуру: Таблица 2.9 тип имя переменной размер(бит) unsigned IM 1 unsigned DM 1 unsigned ZM 1 unsigned OM 1 unsigned UM 1 unsigned PM 1 unsigned PC 2 unsigned RC 2Для вычитания двух стековых регистров, приводим порядок к одному значению и вычитаем мантиссы.Для работы программы необходимы следующие функции: int main() - главная функция программы в ней вызываеться функция инициализации, заполнение стека сопроцессора, а также в диалоговом режиме вызываеться FSUB. int fld(str reg[],_sreg &sreg,_creg creg,_twr twr,int st0 ,int stimm)-заполнение стека сопроцессора. int print_st(str reg[],_sreg sreg,_creg creg,_twr twr, int id)-печатает 1-й элемент стека сопроцессора. int fsub(str reg[],_sreg &sreg,_creg creg,_twr twr,int fl, int s1,int s2)-функция выполняющаяя сложение двух стековых регистров и выталкивает вершину стека.В функции void main(), с которой начинается выполнение программы, производится инициализация эмулятора сопроцессора, заполнение стека первоначальными значениями, после этого предлагается в диалоговом режиме ввести значение: 1 - fsubЛогика работы функции представлена блок-схемой на рис.3.1.Логика работы функции представлена блок-схемой на рис.3.2.Логика работы функции представлена блок-схемой на рис.3.3.Вычтем регистры st0 и st1 командой fsub Вычтем регистр st0 и переменную n командой fsub n Вычтем регистры st1 и st5 командой fsub st1, st5 Вычтем регистры st0 и st2 командой fsub st0, st2 Вычтем регистры st0 и st3 командой fsub st0, st3В результате проделанной работы была написана программа, по своей сути, дублирующая команду математического сопроцессора fsub, а также ее вариации.

План
Содержание информация алгоритм эмуляция сопроцессор

Введение

1. Анализ задания и выбор технологии, языка и среды разработки

2. Определение структуры программного продукта

2.1 Анализ процесса обработки информации и выбор структур данных для хранения

2.2 Выбор методов решения задачи и разработка основных алгоритмов предметной области

2.3 Построение структурной схемы программного продукта

3. Описание реализации программного продукта

3.1 Описание программы эмуляции команды FSUB математического сопроцессора

3.2 Описание функции FSUB

3.3 Описание функции FLD

3.4 Описание функции Print_st

4. Тестирование программы

Заключение

Приложение

Введение
Реалии нашего времени диктуют тот факт, что определяющим качеством товара является его стоимость. Это связано, в основном, с большим ассортиментом каждого устройства, какой бы не был необходим пользователю. Что вполне логично. Ни кто не станет покупать вещь если существует ее дешевый аналог. Но ради справедливости надо заметить что не всегда качественный. Но русские не сдаются и по этому китайский ширпотреб и соответствующая ему культура деловых отношений будет существовать еще долго. Что логично это оказывает и характерное влияние на производимые электроне чипы, микроконтроллеры и прочие сопутствующие детали. Рядовой производитель столкнулся с условием максимально удешевления своей продукции с целью получения преимущества в конкурентной борьбе. И по этим причинам сейчас не редкость встретить всевозможные электронные устройства, такие как медиаплееры, телефоны и т.д. реализованные на материальной базе, лишенной многих функций как казалось обычных процессоров вычислительных систем и машин.

В основном вся тяжесть ложиться на разработчиков программного обеспечения для этих устройств. Программистам приходиться самостоятельно, опираясь на существующие функции реализовывать недостающие, если нет возможности обойтись без них.

Вывод
В результате проделанной работы была написана программа, по своей сути, дублирующая команду математического сопроцессора fsub, а также ее вариации. Были изучены и применены на практике в виде эмуляции 3 регистра. Регистор тегов, регистр команд и регистр состояний.

Была изучена система команд процессора 80х87 и принципы работы процессоров. Было получено представление и содержании такого устройства как процессор, что до не давнего времени было известно на уровне "черного ящика".
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?