5.1.1. Структуры IF... THEN... ELSE

Эти часто встречающиеся управляющие структуры передают управление на один участок программы, если некоторое условие выполняется, и на другой, если оно не выполняется, записываются на ассемблере в следующем общем виде:

(набор команд,   проверяющих условие)

Jcc Else (набор  команд,   соответствующих  блоку THEN)

jmp Endif Else:      (набор команд,  соответствующих блоку ELSE) Endif:

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

if (((х>у) &Mz<t)) IJ (a!=b)) c=d; можно представить на ассемблере так:

Проверка условия.

 

 

 

mov

ax, A

 

 

 

стр

ax, В

 

 

 

jne

• then

;   Если а!

= b

- условие выполнено.

mov

ax,X

 

 

 

cmp

ax, Y

 

 

 

jng

endif

;   Если х <

или

= у - условие не выполнено.

mov

ax, 2

 

 

 

стр

ax, T

 

 

 

jnl

endif

; Если z >

или

= t - условие не выполнено.

then:

enrjif:

; Условие выполняется.

mov mov ax,D

ах