Студопедия — Команда сравнения cmp
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

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






Команда cmp сравнивает два операнда и по результатом сравнения выставляет флаги. Принцип ее работы такой же, как и у команды вычитания за одним лишь исключением, она не записывает результат вычитания на место первого операнда. Синтаксис команды cmp:

Cmp операнд1, операнд2

Флаги, устанавливаемые командой cmp, можно анализировать специальными командами условного перехода. Команды условного перехода приведены в Таблице 7.

Таблица 7 – Перечень команд условного перехода для команды cmp оп1, оп2

Тип операнда Мнемокод команды условного перехода Критерий условного перехода Значение флагов для осуществления перехода
Любой je оп1=оп2 zf=1
Любой jne оп1< > оп2 zf=0
Со знаком jl/jnge оп1< оп2 sf< > of
Со знаком jle/jng оп1< =оп2 sf< > of or zf=1
Со знаком jg/jnle оп1> оп2 sf< > of or zf=0
Со знаком jge/jnl оп1> =оп2 sf=of
Без знака jb/jnae оп1< оп2 cf=1
Без знака jbe/jna оп1< =оп2 cf=1 or zf =1
Без знака ja/jnbe оп1> оп2 cf=0 or zf =0
Без знака jae/jnb оп1> =оп2 cf=0

Так как команды условного перехода не изменяют флагов, то после одной команды cmp могут следовать несколько команд условного перехода. Это может быть сделано для того, чтобы исследовать каждую из альтернативных ветвей: «больше», «меньше» или «равно».

Пример

Необходимо написать программу, вычисляющую следующее арифметическое выражение:

Ниже приведен листинг этой программы.

 

#include " stdafx.h"

#include < iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int a, b, c, x, f;

 

cout< < " Enter a=";

cin> > a;

cout< < " Enter b=";

cin> > b;

cout< < " Enter c=";

cin> > c;

cout< < " Enter x=";

cin> > x;

Asm

{

cmp a, 0

jle next1

cmp b, 10

jge next1

mov eax, a

cdq

add eax, b

imul x

mov ecx, 50

idiv ecx

mov f, eax

jmp my_exit

next1:

cmp a, 0

jge next2

mov eax, x

cdq

imul a

mov ebx, eax

mov eax, b

cdq

mov ecx, 7

idiv ecx

add eax, ebx

mov f, eax

jmp my_exit

next2:

mov eax, x

cdq

mov ecx, 6

idiv ecx

add edx, c

add edx, b

mov f, edx

my_exit:

}

cout< < " f=" < < f< < endl;

system(" pause");

return 0;

}

 

Порядок выполнения

1. С помощью данных методических указаний освоить работу с организацией ветвлений.

2. Написать программу согласно варианту задания.

3. Оформить отчет.

Задания

1. Написать программу, вычисляющую арифметическое выражение согласно варианту. Значение переменных вводится с клавиатуры.

Варианты


Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

Вариант 7

Вариант 8

Вариант 9

Вариант 10

Вариант 11

Вариант 12

Вариант 13

Вариант 14


Контрольные вопросы

1. Расскажите о команде безусловного перехода.

2. Для чего служит в микропроцессорах фирмы Intel — i486 блок предсказания переходов?

3. Расскажите о командах условного перехода.

4. Объясните понятие кэширование.

5. Расскажите о команде cmp.

6. Расскажите о вариантах внутрисегментного использования команды jmp.

7. Приведите пример сравнения двух чисел.

8. Расскажите о регистрах состояния и управления реализованных в микропроцессорах фирмы Intel — i486.

9. Приведите синтаксис команды jmp.

10. Приведите общие свойства и принципы, характерные 4 и 5-му поколениям ЭВМ, так называемой фон-неймановской архитектуры.

11. Перечислите, какие команды могут влиять на работы команд условного перехода.

12. Приведите синтаксис команды cmp.

13. Перечислите команды условного перехода.

14. Расскажите, какие команды влияют на работу команды jmp.

15. Могут ли после команды cmp следовать несколько команд условного перехода?

 








Дата добавления: 2014-11-10; просмотров: 1097. Нарушение авторских прав; Мы поможем в написании вашей работы!



Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

Понятие и структура педагогической техники Педагогическая техника представляет собой важнейший инструмент педагогической технологии, поскольку обеспечивает учителю и воспитателю возможность добиться гармонии между содержанием профессиональной деятельности и ее внешним проявлением...

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия