Курсовая работа: Эмуляция команды математического сопроцессора FSUB
Логика работы функции представлена блок-схемой на рис.3.3.
Рис.3.3. Лист 1
4. Тестирование программы
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).
twr =98B
swr =400E (флаг IE = 1, DE = 1)
cwr =D