русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Нетрансцендентные команды


Дата добавления: 2015-06-12; просмотров: 589; Нарушение авторских прав


Набор нетрансцендентных команд предоставляет изобилие вариаций сложения, вычитания, умножения и деления, а также некоторые другие полезные функции. Диапазон этих команд изменяется от простой команды взятия абсолютного значения до команд, которые проводят точное деление по модулю, округление вещественных чисел до целых и масштабируют величины степенью двух. На Таблице 17-2 показаны нетрансцендентные команды, помимо основной арифметики.

Основные арифметические команды (сложение, вычитание, умножение и деление) разработаны для того, чтобы разрабатывать эффективные алгоритмы. Практически, они позволяют программисту обращаться к памяти также легко, как и к регистровому стеку модуля обработки операций с плавающей точкой. На Таблице 17-3 приведены возможные формы команды/операнда для основной арифметики. В добавок к основным четырем командам существуют "обратное" вычитание и деление, которые устраняют необходимость постоянных обменов между ST(0) и ST(1). Разнообразность форм команд и операндов дает программисту необычайную гибкость:

  • Операнды могут располагаться в регистрах или в памяти.
  • Результаты могут быть выданы в выбранные регистры.
  • Операнды могут быть данными различных типов: расширенное вещественное, двойное вещественное, простое вещественное, короткое целое или целое слово. При этом модулем обработки операций с плавающей точкой производится автоматический перевод в расширенный вещественный формат.
Таблица 17-2. Нетрансцендентные Команды (Кроме Основных Арифметических) +---------------------------------------------------------------+| Мнемоника | Операция |+-----------+---------------------------------------------------|| | || FSQRT | Извлечение Квадратного Корня || | || FSCALE | Масштабирование || | || FXTRACT | Выделение Порядка и Мантиссы || | || FPREM | Частичный Остаток || | || FPREM1 * | Стандарт IEEE Частичный Остаток || | || FRNDINT | Округление до Целого || | || FABS | Абсолютное Значение || | || FCHS | Смена Знака || | |+---------------------------------------------------------------+ * Недоступно для математического сопроцессора 80287/8087. Таблица 17-3. Основные Арифметические Команды и Операнды +---------------------------------------------------------------+| Вид Команды | Форма | Формы Операндов: || | Мнемоники| Приемник, Источник |+---------------------------+----------+------------------------|| | | || Классический Стек | Fop |{ST(1),ST} || | | || Классический Стек, допол- | | || нительная команда POP | FopP |{ST(1),ST} || | | || Регистр | Fop |ST(i),ST или ST,ST(i) || | | || Регистр, Выборка из Стека | FopP |ST(i),ST || | | || Память для вещественных | Fop |{ST} обычное веществен- || | | ное/двойное вещес- || | | твенное || | | || Память для целых | FIop |{ST} целое слово/корот- || | | кое целое || | | |+---------------------------------------------------------------+

ОБРАТИТЕ ВНИМАНИЕ: В скобках ({ }) содержатся неявные операнды; они не закодированы, но поддерживаются ассемблером.



op = ADD DEST °° DEST + SRC SUB DEST °° ST - Другой Операнд SUBR DEST°° Другой Операнд - ST MUL DEST °° DEST x SRC DIV DEST °° ST / ДругойОперанд DIVR DEST °° Другой Операнд / ST

Пять основных видов команд могут быть использованы со всеми шестью командами, как показано в Таблице 17-3. Форма классического стека может быть использована для того, чтобы сделать модуль обработки операций с плавающей точкой подобно машине с классическим стеком. Никакие операнды не нужны для этой формы, только мнемоника команды. Модуль обработки операций с плавающей точкой берет исходный операнд из вершины стека (ST), а принимающий из следующего элемента стека (ST(1)). После выполнения вычислений, результат возвращается в ST(1), а затем выталкивается из стека ST, перемещая при этом результат на свое место.

Регистровая форма является усовершенствованной формой классического стека. При этом программист определяет вершину стека как один операнд и любой регистр как другой операнд. Кодирование вершины стека как операнда назначения предоставляет удобный способ для доступа к константам из вершины стека, если они находятся где-либо в стеке. Операнд назначения не должен быть всегда ST. Основные двухоперандные команды позволяют использовать другой регистр в качестве приемника. Использование ST как исходного операнда позволяет, например, прибавлять вершину стека к регистру, используемому как счетчик цикла.

Часто операнд в вершине стека необходим для одной команды и в дальнейшем не используется для последующих вычислений. Форма выталкивания регистра может быть использована для того, чтобы взять вершину стека как исходный операнд и затем отбросить его, вытолкнув из стека. При кодировании операндов ST(1) и ST вместе с мнемоникой выталкивания регистра эквивалентно классическому стеку: вершина выталкивается, а результат остается в новой вершине стека.

Две формы памяти повышают гибкость нетрансцендентных команд. Они разрешают непосредственно использовать как операнд-источник двоичные целые или вещественные числа из памяти. Это полезно в ситуациях, когда операнды используются не так часто и нет смысла держать их все время в регистрах. Обратите внимание, что любой метод адресации памяти может быть использован для того, чтобы определить эти операнды так, чтобы они были бы элементами массивов, структур или других типов организации данных также, как и простыми скалярными величинами.



<== предыдущая лекция | следующая лекция ==>
Операнды источника и назначения | Команды сравнения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.