[Назад] [Далее]

5.1. Управляющие структуры

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

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

; набор команд, проверяющих условие
        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:

п»ї
"target=_blank><\/a>") //-->