Разработка обучающей программы демонстрации команд арифметического сопроцессора
Автор: Шаяхметова Л.А.
Журнал: Теория и практика современной науки @modern-j
Рубрика: Основной раздел
Статья в выпуске: 1 (7), 2016 года.
Бесплатный доступ
В данной работе рассматривается область применения команд низкоуровневых языков. Изучены основные функции и возможности команд арифметического сопроцессора. Описана разработка обучающей программы, позволяющей визуализировать работу сопроцессора.
Обучающая программа, демонстрация, ассемблер, арифметический сопроцессор
Короткий адрес: https://sciup.org/140267233
IDR: 140267233
Текст научной статьи Разработка обучающей программы демонстрации команд арифметического сопроцессора
-
• получение учащимися навыков самостоятельного анализа, усвоения, применения изучаемого материала;
-
• повышение доступности образовательных материалов и достижений педагогической практики;
-
• активизация внимания, повышения интереса в процессе обучения;
-
• привлечение учащихся к экспериментальной, творческой, научноисследовательской деятельности;
-
• снижение нагрузки на преподавателя. [1, 2]
Использование обучающих программ особенно актуально в обучении программированию, так как они позволяют моделировать работу сложных процессов и систем, визуализировать структуры представления данных, продемонстрировать выполнение различных команд на уровне машинных инструкций. Изучение машинно-ориентированного языка (ассемблер) на сегодняшний день достаточно актуально и даёт такие профессиональные преимущества как
-
• глубокое понимание работы компьютера и операционной системы;
-
• оптимизация программ по скорости выполнения;
-
• максимальная гибкость при работе с аппаратными ресурсами;
-
• разработка драйверов и написание системного кода;
-
• дизассемблирование и отладка, просмотр ассемблерного кода, сгенерированного компилятором с целью поиска ошибок и проверки качества оптимизации критических участков программы.
Команды арифметического сопроцессора (FPU) применяются в основном для операций с вещественными числами и применяются в играх, где задействован весь вычислительный потенциал компьютера, и непосредственное программирование арифметического сопроцессора позволяет оптимально построить код программы и ускорить вычисления.
Таким образом, выявляется актуальность разработки обучающей программы, демонстрирующей работу команд сопроцессора.
Теоретические основы команд FPU. Арифметический сопроцессор содержит восемь численных 80-битовых регистров, предназначенных для хранения промежуточных результатов вычислений, регистра управления, регистра состояния, регистра тегов, регистра указателя команды и регистра указателя операнда.
Численные регистры используются как стек. Регистр состояния в поле ST содержит номер численного регистра, являющего вершиной стека. Когда происходит выполнение команды, операндами являются данные численных регистров. Результаты работы команды также записывается в стек численных регистров.
Регистр тегов разделен на восемь двухбитовых полей, которые относится к определённому численному регистру, и классифицируют его содержимое комбинацией из двух бит, значение которых приведено в таблице 1:
Таблица 1 – Классификация численных регистров
Поле |
Описание |
00 |
Регистр содержит действительное ненулевое число |
01 |
В регистре находится нуль |
10 |
Регистр содержит недействительное число -нечисло, бесконечность, неопределенность |
11 |
Пустой неинициализированный регистр |
Регистр состояния состоит из 16 бит, первые 5 из которых обозначают флажки особых случаев.
Таблица 2 – Таблица флажков особых случаев
Флажок |
Особый случай |
0(IE) |
Недействительная операция |
1(DE) |
Денормализованный результат |
2(ZE) |
Деление на нуль |
3(OE) |
Переполнение |
4(UE) |
Антипереполнение |
5(PE) |
Неточный результат |
Бит 7 показывает флаг суммарной ошибки, биты 8, 8, 10, 14 – коды условий, определяющиеся по результату выполнения команд сравнения и команды нахождения остатка, биты 11-13 и содержат номер численного регистра, являющегося вершиной стека численных регистров, 15 – бит занятости.
Существует шесть типов арифметических команд, которые выполняет сопроцессор:
-
• Fxxx – операция производится между первыми двумя элементами стека и записывается в ST(0) (приёмник).
-
• Fxxx a – в этой команде a – память (источник), операция производится между значением из памяти и верхушкой стека ST(0).
-
• Fixxx память – данная операция аналогична предыдущей, но осуществляется с целыми числами.
-
• Fxxx операнд – операция производится между операндом, представляющим собой адрес ячейки памяти (источник) и верхушкой стека ST(0) (приёмник).
-
• Fxxx ST, ST(i) – операция производится между регистром ST(i) и верхушкой стека ST (0), результат записывается в ST(0).
-
• FxxxP ST(i), ST – данный тип аналогичен предыдущему, но после выполнения команды ST(0) извлекается из стека.
Строка "xxx" принимает значения ADD – сложение, SUB – вычитание, SUBR – обратное вычитание, MUL – умножение, DIV – деление, DIVR – обратное деление [3, с. 554]
Реализация учебной программы демонстрации команд FPU. С целью демонстрации выполнения команд сопроцессора разработана обучающая программа, состоящая из трёх модулей:
-
1. Модуль теории, содержащей основные теоретические сведения;
-
2. Модуль демонстрации;
-
3. Модуль тестов, выполняющий контроль знаний по изучаемой теме, включает перечень вопросов, выбираемой системой в случайном порядке и принадлежащих к одной из следующих категорий:.
Модуль демонстрации содержит графическое представление всех регистров сопроцессора, значения которых изменяются в соответствии с введёнными пользователем значениями. Данный модуль программы реализует следующие функциональные возможности:
-
• добавление значения в стек с преобразованием десятичного вещественного числа в двоичное;
-
• генерация значения, в том числе специального (нечисло, неопределённость, бесконечность);
-
• выполнение одной из 36 описанных команд, выбранной из выпадающего списка;
-
• подробное представление численных регистров с указанием знакового разряда, мантиссы, характеристики;
-
• отображение изменения состояний всех регистров после выполнения команды;
-
• демонстрация работы программы в автоматическом режиме.
Программа разработана на языке программирования высокого уровня C#, с использованием платформы .NET Framework 4.5 и интерфейса Windows Forms в интегрированной среде Microsoft Visual Studio 2014 и работает под управлением операционной системы Windows. Интерфейс Windows Forms включает большой набор различных библиотек для разработки графического интерфейса и максимально упрощает создание визуальных приложений. В пространстве имён System реализован класс BitConverter, который реализует преобразование базового типа данных в массив данных, обеспечивая автоматическую конвертацию десятичного числа в двоичное.
Таким образом, была разработана учебная программа, демонстрирующая работу арифметического сопроцессора. Данная разработка способствует повышению эффективности изучения машинных команд и предназначена для студентов технических специальностей и школ с углублённым изучением информатики.
Список литературы Разработка обучающей программы демонстрации команд арифметического сопроцессора
- Вихман В. В. Оценка и анализ эффективности применения информационных технологий в образовании. - Автореферат диссертации. - 2004 г.
- [Электронный ресурс] Режим доступа: http://physics.herzen.spb.ru/teaching/materials/gosexam/b25.htm
- Юров В. И. Assembler. Учебник для вузов. - СПб.: Питер, 2003. -637 с.