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




Листинг 12.5 (продолжение)

shl еах. 2 ;умножить на 4

mov esi. offset MName : отн. адрес названия

add esi. еах

invoke WriteConsole. stdout. esi: 4,\

ADDR cWritten. NULL xor eax. eax

invoke wsprintf. ADDR buf. ADDR ifmt. d[8] invoke WriteConsole. stdout. ADDR buf. 4,\ ADDR cWritten. NULL

ret

DateDisp endp end start

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

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

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

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


назад далее