| [Назад] [Далее] | ![]() |
Это часто встречающаяся управляющая структура, передающая управление на один участок программы, если некоторое условие выполняется, и на другой, если оно не выполняется, записывается на ассемблере в следующем общем виде:
; набор команд, проверяющих условие
Jcc Else
; набор команд, соответствующих блоку THEN
jmp Endif
Else:
; набор команд, соответствующих блоку ELSE
Endif:
Для сложных условий часто оказывается, что одной командой условного перехода обойтись нельзя, так что реализация проверки может значительно увеличиться; например, следующую строку на языке С
if (((х > у) && (z < t)) || (a != b)) c = d;
можно представить на ассемблере как:
; проверка условия
mov ax,A
cmp ах,В
jne then ; если а != b - условие выполнено
mov ах,X
cmp ax,Y
jng endif ; если х <= у - условие не выполнено
mov ax,Z
cmp ах,Т
jnl endif ; если z >= t - условие не выполнено
then: ; условие выполняется
mov ax,D
mov С,ах
endif: