русс | укр

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

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

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

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


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

Команды сравнения


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


Команды этого класса позволяют сравнивать числа всех поддерживаемых вещественных и целых типов данных. Каждая из этих команд (Таблица 17-4) анализирует элемент в вершине стека, часто по отношению к другому операнду, и в результате выдает код условия в слово состояния (флаги C0, C2 и C3).

Основными командами являются сравнение, тестирование (сравнение с нулем) и проверка (на тип, знак и нормализацию). Особые формы команды сравнения предназначены для оптимизации алгоритмов, разрешая прямое сравнение с двоичными целыми и вещественными числами в памяти также, как и выталкивание из стека после сравнения.

Таблица 17-4. Операции Сравнения +---------------------------------------------------------------+| Мнемоника | Операция |+-----------+---------------------------------------------------|| | || FCOM | Сравнить Вещественные || | || FCOMP | Сравнить Вещественные и Взять из Стека || | || FCOMPP | Сравнить Вещественные и Дважды Взять из Стека || | || FICOM | Сравнить Целые || | || FICOMP | Сравнить Целые и Взять из Стека || | || FTST | Тестирование || | || FUCOM* | Сравнение Неупорядоченных Вещественных || | || FUCOMP* | Сравнить Неупорядоченные Вещественные и Взять из || | Стека || | || FUCOMPP* | Сравнить Неупорядоченные Вещественные и Взять из || | Стека Дважды || | || FXAM | Проверка || | |+---------------------------------------------------------------+ * Недоступно для математического сопроцессора 80287/8087.

Команда FSTSW AX (сохранить слово состояния) может быть использована после сравнения для того, чтобы передать код условия в регистр AX для просмотра. Команда TEST рекомендуется для использования флагов модуля обработки операций с плавающей точкой для управления условным ветвлением. Сначала проверяется, получилось ли в результате сравнения, что числа неупорядочены. Это может случится, если один операнд является NaN. Сравните содержимое регистра AX с константой 0400H; флаг ZF будет очищен (флаг нуля регистра EFLAGS), если сравнение дало неупорядоченность, и установлен в противном случае. Теперь можно использовать команду JNZ для того, чтобы передать управление (при необходимости) программе, которая обрабатывает случай неупорядоченных операндов. Отфильтровав случай неупорядоченных операндов, снова сравните содержимое регистра AX с соответствующей константой из Таблицы 17-5, а затем используйте соответствующую условную ветвь.



Нет необходимости все время отфильтровывать случай неупорядоченности при использовании этого алгоритма для условных переходов. Если программное обеспечение было тщательно оттестировано и включает периодические проверки результата на QNaN (как рекомендовано в Главе 16), то совершенно не обязательно проверять случай неупорядоченности всякий раз после сравнения. Кроме представленых в группе операций сравнения, некоторые другие команды могут обновлять код условия. Для того, чтобы быть уверенным, что слово состояния не было случайно изменено, сохраняйте его сразу же после команды сравнения.



<== предыдущая лекция | следующая лекция ==>
Нетрансцендентные команды | Трансцендентные команды


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


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

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

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


 


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

 
 

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

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