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



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

Поразрядные операции и адресация

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

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

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


назад далее