Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Арифметичні та логічні оператори.doc
Скачиваний:
1
Добавлен:
13.07.2019
Размер:
118.78 Кб
Скачать

Команда безумовного переходу

jmp (модифікатор) адреса_переходу – безумовний перехід без збереження інформації про точку повернення; адреса_переходу – мітка або адреса пам’яті.

Найчастіше використовуються:

·          короткий внутрішньосегментний перехід – відстань від команди jmp до адреси_переходу не більше ніж -128 або +127 байт:

jmp short ptr m1

не більше 35-40 команд (127 байт)

m1:

або

m1

відстань не більше 35-40 команд (-128 байт)

jmp m1

·          внутрішньосегментний перехід – дозволяються переходи в межах 64 Кбайт відносно наступної за jmp команди:

m1:

відстань більше 128 байт і менше 64 Кбайт

jmp m1;

·          міжсегментний перехід – для організації переходів між сегментами:

seg_1 segment

jmp far ptr m2; far обов’язкове

m1 label far

seg_1 ends

seg_2 segment

m2 label far

jmp m1; far обов’язкове

Модифікатори short ptr, near ptr i word ptr використовуються для організації внутрішньосегментних переходів, а far ptr i dword ptr – міжсегментних.

Команди умовного переходу:

·          jcxz мітка_переходу – перехід, якщо сх=0;

·          jecxz мітка_переходу – перехід, якщо есх=0.

Вони зручні про організації циклів. Але можуть адресувати лише короткі переходи – на -128 байтів або на +127 байтів від наступної за нею команди.

Команди організації циклів:

·          loop мітка_переходу – повторити цикл; команда зменшує вміст есх/сх на одиницю і якщо (есх/сх)>0, то керування передається на мітку переходу;

·          loop/loopz мітка_переходу – повторювати цикл, поки (есх/сх) <> 0 або zf=0;

·          loopne/loopnz мітка_переходу – повторювати цикл, поки (есх/сх) <> 0 або zf=1.

Команди порівняння

Команда порівняння сmр установлює ознаки залежно від значень операнда_1 та операнда_2.

Синтаксис команди cmp:

cmp операнд_1, операнд_2.

Ознаки, які встановлює команда cmp, можна аналізувати спеціальними командами умовного переходу:

jcc мітка_переходу,

де 6и визначає конкретну умову, яка аналізується командою:

6ипии операндів

Мнемокод команди умовного переходу

Критерій умовного переходу

Значення ознак для здійснення переходу

будь-які

je

операнд_1 = операнд+2

zf=1

будь-які

jne

операнд_1 <> операнд_2

zf=0

зі знаком

jl/jnge

операнд_1< операнд_2

s <> of

зі знаком

jle/jng

операнд_1< = операнд_2

s <> of or zf=1

зі знаком

jg/jnle

операнд_1 > операнд_2

sf=of and 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 and zf=0

без знаку

jae/jnb

операнд_1 => операнд_2

cf=0