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



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

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

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


назад далее