Курсовая работа: Эмуляция команды математического сопроцессора FSUB
Для работы программы необходимы следующие функции:
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. Структурная схема программного продукта
3. Описание реализации программного продукта
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