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



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

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

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


назад далее