Разработка обучающей программы демонстрации команд арифметического сопроцессора

Автор: Шаяхметова Л.А.

Журнал: Теория и практика современной науки @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 с.
Статья научная