Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум КТіООР.doc
Скачиваний:
4
Добавлен:
09.11.2019
Размер:
4.21 Mб
Скачать

Je/jz-перехід, якщо рівно/перехід по нулю

Якщо (ZF)=1, то (IP)  (IP) + Disp8.

Команди передають управління за адресою, що задається цільовим операндом за умови рівності одиниці прапорця ZF. Інакше виконується наступна команда. Адреса цільового операнду визначається додаванням байта зміщення з адресою наступної команди. Оскільки зміщення є 8-бітове ціле число із знаком, команди можуть вказувати адресу переходу в діапазоні +127байт  -128 байт від кінця команди.

Приклад. Нехай в регістрі АХ записано число FFFFH і виконується наступна послідовність

INC АХ

JE OUTPUT

ADD AX,4000H

RET

OUTPUT: CLD

Перша команда встановлює прапор ZF в 1. Після виконання команди JЕ OUTPUT управління передаеться за адресою OUTPUT, в якій знаходиться команда CLD. Це означає, що новий вміст регістру АХ рівний нулю.

Jg/jnle-переход, якщо більше ніж/переход, якщо не менше ніж або рівно

Якщо ((SF) = (OF) AND (ZF) = 0), то

(IP)  (IP) + Disp8.

Команди передають управління за адресою, що задається цільовим операндам, за умови одночасної рівності значень прапорwів SF і OF і рівності нулю прапора ZF. Інакше виконується наступна чергова команда. Адреса цільового операнда обчислюється додаванням байта зміщення з адресою наступної команди. Оскільки зміщення є 8-бітове ціле число із знаком, команди JG/JNLE можуть вказувати адресу переходу в діапазоні +127 байт  -128 байт від кінця команди. Команди корисні при порівнянні чисел із знаком.

Приклад. Нехай регістр SI містить число 0020Н, регістр DX - число FF23H і виконується наступна послідовність команд:

CMP SI,DX

JG SAME

STD

RET

SAME:CLD

Після виконання першої команди всі три прапори SF, ZF і OF скидаються в нуль. Після виконання команди JG SAME управління передається команді CLD за адресою SAME. Це означає, що вміст регістра SI (позитивне шіснадцяткове число 20Н) більший, ніж вміст регістра DX (негативне шіснадцяткове число FF23H).

Jge/jnl-nepexід, якщо більше або рівно/перехід, якщо не менше ніж

Якщо (SF) = (OF), то (IP)  (IP) + Disp8.

Команди здійснюють передачу управління за адресою, що задається цільовим операндом, при умові, що значення прапорів SF і нOF е рівні. В іншому випадку виконується наступна команда. Адреса цільового операнда обчислюється додаванням байта зміщення з адресою наступної команди. Оскільки зміщення є 8-бітове ціле число із знаком, команди JGE/JNL можуть вказувати адресу переходу в діапазоні +127 байт  -128 байт від кінця команди. Ці команди корисно використовувати при порівнянні чисел із знаком.

Приклад. Нехай регістр АХ містить число 0020Н і виконується наступна послідовність команд

DEC АХ

JGE UNSIGN

CLС

RET

UNSIGN: INС BP

Після виконання першої команди в регістрі АХ знаходитиметься позитивне, відмінне від нуля, число. Отже, прапори SF і OF будуть скинені в 0. Після виконання команди JGE UNSIGN управління буде передано за адресою UNSIGN і почнеться виконання команди INC ВР. Це означає, що вміст регістру АХ не менше нуля.

Нехай регістр АХ містить число FF00H. Тоді в приведеному прикладі після виконання першої команди буде встановлений в 1 прапор SF і на відміну від попереднього варіанту після команди JGE UNSING буде виконана команда CLC.