Команда CMP процессоров семейства i80x86 используется для сравнения двух операндов. Говоря проще, эта команда сравнивает два числа, то есть проверяет, равны эти два числа или НЕ равны.

  • Область памяти (MEM)
  • Регистр общего назначения (REG)
  • Непосредственное значение (например, число) (IMM)

Таким образом, комбинации ЧИСЛО1-ЧИСЛО2 могут быть следующими:

Сравнение чисел в Ассемблере с помощью инструкции CMP выполняется по следующему алгоритму:

  1. Из ЧИСЛА1 вычитается ЧИСЛО2 (ЧИСЛО1 - ЧИСЛО2)
  2. Если результат равен нулю, то ЧИСЛО1 = ЧИСЛО2
  3. Если числа равны, то есть результат равен 0, то устанавливается флаг ZF

Остальные флаги также устанавливаются или сбрасываются в зависимости от результата.

Итак, чтобы сравнить два числа в Ассемблере нам надо выполнить следующие действия:

  1. Выполнить команду CPM
  2. Прочитать флаг ZF
  3. Если ZF = 1, то числа равны
  4. Если ZF = 0, то числа НЕ равны

Ну а дальше, в зависимости от результата, мы можем выполнить переход на какую-то метку в программе. В статье об использовании инструкции JMP я рассказывал о метках и о безусловном переходе.

Для того, чтобы выполнить переход после сравнения чисел, требуется использовать одну из команд условного перехода. Но об этих команда будет рассказано в соответствующих статьях.

Пример участка программы сравнения чисел на Ассемблере приведён ниже:

Здесь мы сначала помещаем в регистры AL и AH два одинаковых числа (5), а затем выполняем команду CMP - сравниваем значения в регистрах AL и AH.

Так как эти значения равны, то после выполнения команды CMP флаг ZF будет установлен, то есть равен 1.

Затем мы сравниваем содержимое регистра AL с число 6. Так как в регистре AL у нас осталось число 5, то после выполнения команды CMP флаг ZF будет сброшен (то есть равен 0), так как сравниваемые значения НЕ равны.

В конце как обычно расскажу, почему эта команда ассемблера называется CMP. Это сокращение от английского слова COMPARE, которое можно перевести как “сравнить”.



Онлайн решение рядов на сходимость с решением


Узнать стоимость за 15 минут
  • Тип работы
  • Часть диплома
  • Дипломная работа
  • Курсовая работа
  • Контрольная работа
  • Реферат
  • Научно - исследовательская работа
  • Отчет по практике
  • Ответы на билеты
  • Тест/экзамен online
  • Монография
  • Эссе
  • Доклад
  • Компьютерный набор текста
  • Компьютерный чертеж
  • Рецензия
  • Перевод
  • Репетитор
  • Бизнес-план
  • Конспекты
  • Проверка качества
  • Единоразовая консультация
  • Аспирантский реферат
  • Магистерская работа
  • Научная статья
  • Научный труд
  • Техническая редакция текста
  • Чертеж от руки
  • Диаграммы, таблицы
  • Презентация к защите
  • Тезисный план
  • Речь к диплому
  • Доработка заказа клиента
  • Отзыв на диплом
  • Публикация статьи в Вак
  • Публикация статьи в Scopus
  • Дипломная работа MBA
  • Повышение оригинальности
  • Шрифт, pt
  • 12 pt
  • 14 pt
  • Другой
Прикрепить файл
Заказать