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



Листинг 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

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

Итоги действительных операций оказывают воздействие на расположение 8 джокеров. Громадная область данных флагов может быть проанализирована после исполнения действительных команд с поддержкой функций условного перевода, и вдобавок с участием процедуры CIN (прекращение по заполнению). Влияние действительных команд на знаки обрисовано далее.

CF (символ трансдукции): Ежели в следствии сбора совершается сдвиг из большего разряда, знак трансдукции воздевается; в противном случае знак трансдукции обнуляется. При вычете знак переноса возводится, если осуществляется заем в главный бит достигнутого результата; при нехватке взятия знак обновляется. Необходимо помнить, что при появлении симптоматичного переноса CF != OF (символ пополнения). Знак свитча CF может использоваться для показа неимеющего знака заполнения.

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


назад далее