Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
assembler_v0.1.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
43 Кб
Скачать
☆

20. Условные переходы

Существует 18 команд условного перехода, позволяющего проверить отношение между операциями со знаком (> или <) (less – меньше, greater - больше) и без знака (above или below)

Синтаксис: jcc метка_перехода

jcc – конкретное условие команд. Метка перехода определяет метку, которая может находиться только в пределах текущего сегмента. Межсегментные переходы в условных переходах не допускаются.

21. Команды сравнения

cmp (compare) – выполняет вычитание операндов по результатам сравнения устанавливаются флаги, но операнды не изменяются.

Синтаксис: cmp опер_1, опер_2

Тип операнда

Код

Критерий

Флаги

-

je

опер_1=опер_2

ZF=1

-

jne

опер_1≠опер_2

PF=1

Со знаком

jl/jnge

опер_1<опер_2

SF≠OF

-

jle/jng

опер_1≤опер_2

SF≠OF

ZF=1

-

jg/jnle

опер_1>опер_2

SF=OF

ZF=0

-

jge/jnl

опер_1≥опер_2

SF=OF

Без знака

jb/jnae

опер_1<опер_2

CF=1

-

jbe/jna

опер_1≤опер_2

CF=1

ZF=1

-

ja/jnbe

опер_1>опер_2

CF=0

ZF=0

-

jae/jnb

опер_1≥опер_2

CF=0

Так как команды условного перехода не изменяют флага, то после команды cmp могут следовать несколько команд условного перехода.

.data

mas db dup (?)

.code

cmp mas [si], 5

je eql =5

je low <5

je grt >5

eql:

low:

grt:

Также команды условного перехода осуществляют переход на метку, анализируя состояние регистра флагов

Флаг

Команда

Значения флагов

CF

jc/jnc

CF=1/CF=0

PF

jp/jnp

PF=1/PF=0

ZF

jz/jzp

ZF=1/ZF=0

SF

js/jsp

SF=1/SF=0

OF

jo/jop

OF=1/OF=0

Регистр CX имеет определенное функциональное назначение – счетчик в командах управления циклами и при работе с цепочками символов. С этим регистром связана определенная команда условного перехода:

jcxz/jecxz метка_перехода

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]