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

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

Команда сравнения 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; просмотров: 1116. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


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


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


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

Объект, субъект, предмет, цели и задачи управления персоналом Социальная система организации делится на две основные подсистемы: управляющую и управляемую...

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

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