Студопедия

Главная страница Случайная страница

Разделы сайта

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






Оператор условного перехода.






Команда условного перехода реализует изменение естественного порядка выполнения команд программы. В обозначение команд входят буквы, которые определяют условие перехода:

E – “=”; N – “не =”; G – “> ”; L – “< ”; A – “> ”; B – “< ”;

Решение о том, куда будет передано управление, принимается на основании условия. Источниками такого условия может быть:

1) любая команда, изменяющая состояние регистров – флагов.

2) команда сравнения CMP

Формат команды CMP.

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

Команда выполняет вычитание из 1 операнда 2, при этом результат никуда не записывается, значение операнда не меняется, а изменяются только флаги.

Рассмотрим:

А)Операнды без знака:

оп1< оп2 (ZF=0, CF = 0); оп1=оп2(ZF=1, CF=0); оп1> оп2(ZF=0, CF=1);

Б) Операнды со знаком:

оп1< оп2(ZF=0, SF=0); оп1= оп2(ZF=1, SF=0); оп1> оп2(ZF=0, SF=1);

Основные команды условного перехода:

JE оп1= оп2

JNE оп1 не= оп2

со знаком:

JL / JNGE оп1< оп2

JLE / JNG оп1< = оп2

JG / JNLE оп1> оп2

JGE / JNL оп1> = оп2

без знака:

JB / JNAE оп1< оп2

JBE / JNA оп1< = оп2

JA / JNBE оп1> оп2

JAE / JNB оп> = оп2

Оператор безусловного перехода.

Для организации безусловного перехода на ассемблере имеется команда JMP

JMP адрес перехода

Рассмотрим пример:

JMP@label1

@label1:

JE адрес перехода

JE@label2

Адрес перехода может быть меткой или адресом области памяти, в которую предварительно помещён указатель перехода. В системе команд существует несколько кодов машинных команд безусловного перехода. Их различие определяется дальностью перехода и способом задания целевого адреса. Дальность перехода определяется местоположением – операндом команды. Этот адрес может находиться в текущем сегменте кода или в некотором другом сегменте. В первом случае переход называется внутрисегментовым или близким. Во втором случае – межсегментовым или дальним.

I.Внутрисегментовый переход предполагает, что изменяется только содержимое регистра.

Выделяют 3 варианта внутрисегментового перехода:

1)Прямой короткий внутрисегментовый переход.

Применяется, когда расстояние от команды JMP до адреса не более чем 127 байт. В этом случае транслятор языка на код смещения выделяет 1 байт. В ходе операции заложена информация о том, что второй байт интерпретируется как смещение.

2) Прямой внутрисегментовый переход.

Отличается от короткого тем, что длина машинной команды составляет 3 байта, в кот. 2 последних интерпретируются как смещение. В этом варианте можно осуществлять переход в пределах 64кБайт, относительно следующей JMP команды.

3)Косвенный внутрисегментовый переход.

Означает, что команде JMP указывается не сам адрес, а место, где этот адрес записан.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.