Листинг 12.1. Пример ветвлений в ассемблере
cmp digit.О jnz nzero
invoke WriteConsoleA. stdout. ADDR z. \ zsize. ADDR cWritten. NULL
jmp exit nzero:
invoke WriteConsoleA. stdout. ADDR nz. \
nzsize. ADDR cWritten. NULL exit: invoke ExitProcess. 0
Ключевую роль здесь играет инструкция jnz nzero, отправляющая процессор к метке nzero, когда переменная digit не равна нулю, и позволяющая процессору выполнить следующую инструкцию, если digit равна нулю.
Результаты цифeрных команд оказывают воздействие на состояние 8 джокеров. Солидная часть данных знаков будет рассчитана после произведения арифметических команд с помощью процедур относительного скачка, а также с помощью команды INTO (прерывание по восполнению). Воздействие циферных процедур на знаки изображено ниже.
CF (знак трансдукции): В случае если в следствии сложения осуществляется сдвиг из большего байта, символ переноса воздевается; в другом случае знак свитча обнуляется. При вычитании символ свитча возводится, если свершается заимствование в старший бит результата; при недоступности заимствования символ обнуляется. Следует помнить, что при происхождении меточного свитча CF == VH (символ пополнения). Символ трансдукции АР имеет возможность применяться для показа беззнакового заполнения.
АО (флаг дополнительного трансдукта): Если в результате суммирования свершается свитч из меньшого полубайта в больший, символ добавочного сдвига взводится; в другом случае знак обнуляется. При вычитании знак дополнительного свитча подымается, ежели воплощается заем из верхнего полубайта в нижний; при отсутствии заема символ сбрасывается.