50458 (Эмуляция команды математического сопроцессора FSUB), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Эмуляция команды математического сопроцессора FSUB", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "50458"

Текст 2 страницы из документа "50458"

Таблица 2.2

тип

название

bits

bit

unsigned char

bait





Определим структуры для мантиссы и порядка:

Структура ud16 с полями в таблице 2.3

Таблица 2.3

тип

название

bait_tab

data[2]

short

val

Структура ud64 с полями в таблице 2.4

Таблица 2.4

тип

название

bait_tab

data[8]

_int64

val

Структура ud80 с полями в таблице 2.5

Таблица 2.5

тип

название

ud64

mant

ud16

exp

В самом же сопроцессоре стековые регистры имеют вид структуры str с полями, преставленной в таблице 2.6

Таблица 2.6

типа

название

bait_tab

data[10]

ud80

val

Также в программе определены регистры состояния, тегов и контроля.

Структура regs представлена в таблице 2.7





Таблица 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

Структура _sreg с полями в таблице 2.8

Таблица 2.8

тип

название

regs

data

unsigned short int

sreg

Структура _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





Таблица 2.10

тип

название

unsigned short int

creg

Структура _twr, включает в себя следующую структуру:

Таблица 2.11

тип

имя переменной

размер(бит)

unsigned char

pr0

2

структура _twr с полями в таблице 2.12

Таблица 2.12

типа

название

unsigned short int

twr

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

Для вычитания двух стековых регистров, приводим порядок к одному значению и вычитаем мантиссы. Далее если необходимо производим нормализацию. Если в результате произошло переполнение мантиссы или порядка, устанавливаем флаги и возвращаем 0.

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

Для работы программы необходимы следующие функции:

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)– функция выполняющаяя сложение двух стековых регистров и выталкивает вершину стека.

Структурная схема программного продукта:

Рис.1. Структурная схема программного продукта

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

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

В функции void main(), с которой начинается выполнение программы, производится инициализация эмулятора сопроцессора, заполнение стека первоначальными значениями, после этого предлагается в диалоговом режиме ввести значение:

1 - fsub

2 - fsub n

3 - fsub st(n), st(n)

4 - fld

0 - выход

В случае если пользователь введет 1, программа вычтет из вершины стека значение, находящееся на следующей позиции, 2 – вычтет из вершины стека переменную, введенную пользователем, 3 – произведет вычитание указанных пользователем значений стека, 4 – поместит на вершину стека новое значение.

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

Логика работы функции представлена блок-схемой на рис.3.1.





Рис.3.1. Лист 1





Рис.3.1. Лист 2

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

Логика работы функции представлена блок-схемой на рис.3.2.





Рис.3.2. Лист 1





Рис.3.2. Лист 2

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

Логика работы функции представлена блок-схемой на рис.3.3.





Рис.3.3. Лист 1





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

4.1 Выбор стратегии тестирования и разработка тестов

Для проверки работоспособности программы необходимо разработать такой тест, чтобы он проверил все возможные случаи, которые могут возникнуть при пользовании этой программой. Для этого составим набор тестов:

План тестирования:

  1. Вычтем регистры st0 и st1 командой fsub

  2. Вычтем регистр st0 и переменную n командой fsub n

  3. Вычтем регистры st1 и st5 командой fsub st1, st5

  4. Вычтем регистры st0 и st2 командой fsub st0, st2

  5. Вычтем регистры st0 и st3 командой fsub st0, st3

  6. Вычтем регистры st0 и st6 командой fsub st0, st6

  7. Вычтем регистры st0 и st7 командой fsub st0, st7

  8. Вычтем регистры st0 и st7 командой fsub st0, st4

Результаты тестов: Перед тестированием.

twr =98B; swr =E; cwr =D

Таблица 4.1

Название регистра

Мантисса

Порядок

St0

5,54

2

St1

4,562

3

St2

денормализованый операнд

0

St3

0

0

St4

бесконечность

0

St5

1,12

1

St6

нечисло

0

St7

пусто

0





После 1 теста ( fsub) регистры не изменяются.

Таблица 4.2

Название регистра

Мантисса

Порядок

St0

-4,008

3

St1

4,562

3

St2

денормализованый операнд

0

St3

0

0

St4

бесконечность

5

St5

1,12

1

St6

нечисло

0

St7

пусто

0

После 2 теста ( fsub n, n = -5000,52), регистры не изменяются.

Таблица 4.3

Название регистра

Мантисса

Порядок

St0

9,9252

2

St1

4,562

3

St2

денормализованый операнд

0

St3

0

0

St4

бесконечность

5

St5

1,12

1

St6

нечисло

0

St7

пусто

0

После 3 теста ( fsub st1, st5), регистры не изменяются.

Таблица 4.4

Название регистра

Мантисса

Порядок

St0

8,7952

2

St1

4,562

3

St2

денормализованый операнд

0

St3

0

0

St4

бесконечность

5

St5

1,12

1

St6

нечисло

0

St7

пусто

0

После 4 теста ( fsub st0, st2).

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5259
Авторов
на СтудИзбе
421
Средний доход
с одного платного файла
Обучение Подробнее