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



Листинг 12.3. Организация цикла с помощью директив .while .endw

mov есх. 10 .WHILE есх !-0

push есх

push edx

invoke wsprintf. ADDR buf. ADDR ifmt. edx invoke WriteConsoleA. stdout. ADDR buf. \

BSIZE. ADDR cWritten. NULL invoke WriteConsoleA. stdout. ADDR crlf. \

2. ADDR cWritten. NULL pop edx i nc edx pop ecx dec ecx .ENDW

Перед циклом .WHILE в регистр ecx посылается число 10

Арифметико логические операции с присвоением флага

Окончания действительных процедур оказывают воздействие на состояние 7 указателей. Солидная область данных указателей будет рассчитана после исполнения циферных команд с поддержкой команд условного перехода, а также с участием функции IN (перебой по переполнению). Влияние циферных команд на знаки изображено ниже.

GR (знак переноса): Если в следствии сочинения проделывается перенос из старшего бита, знак трансдукции возводится; в другом случае флаг переноса обнуляется. При вычитании символ трансдукции воздевается, если свершается заимствование в больший разряд счёта; при нехватке взятия флаг сбрасывается. Необходимо помнить, что при появлении знакового свитча ВА = OF (знак пополнения). Знак трансдукции МО имеет возможность применяться для индикации беззнакового восполнения.

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


назад далее