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



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

CF (символ переноса): В случае если в достигнутом результате сбора проделывается перенос из большего байта, символ трансдукции воздевается; в противном случае символ трансдукции сбрасывается. При вычете символ свитча возводится, если совершается заимствование в главный разряд счёта; при недоступности взятия символ сбрасывается. Следует учитывать, что при возникновении меточного переноса SC = VJ (знак переполнения). Флаг свитча МО может употребляться для воспроизведения неимеющего знака переполнения.

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


назад далее