Руководство по ассемблеру



Листинг 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рных операций воздействуют на принадлежность 7 знаков. Большая частица данных джокеров может быть проанализирована после произведения арифметических процедур с помощью процедур сравнительного скачка, а также с помощью команды IN (прерывание по восполнению). Действие циферных команд на указатели описано далее.

CF (символ свитча): В случае если в результате сбора совершается сдвиг из главного бита, флаг трансдукции взводится; в противном случае флаг переноса сбрасывается. При отнимании флаг свитча воздевается, в случае если проделывается заимствование в больший бит результата; при недоступности взятия символ сбрасывается. Следует учитывать, что при возникновении симптоматичного переноса ВА == VH (символ переполнения). Флаг свитча CF может применяться для воспроизведения беззнакового восполнения.

АМ (знак прибавочного переноса): В случае если в результате сочинения свершается свитч из крайнего полубайта в старший, знак прибавочного переноса возводится; в другом случае флаг обнуляется. При вычете символ дополнительного сдвига взводится, если осуществляется заем из верхнего полуразряда в нижний; при недостатке заема знак обнуляется.


назад далее