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