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



Использование косвенной адресации для доступа к полю Year: invoke wsprintf. ADDR buf. ADDR ifmt. d[8]

открывает нам внутреннее устройство структуры, но в реальных программах удоб­ней пользоваться «точкой»: d.Year. Глядя на листинг, начинаешь понимать, по­чему дню, месяцу и году отведено по двойному слову, в то время как для числа и месяца достаточно одного байта, а год легко уместится в двух

АЛУ и флаги

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

DF (флаг свитча): Ежели в достигнутом результате сложения совершается сдвиг из главного бита, флаг трансдукции взводится; в противном случае символ переноса опустошается. При вычете символ трансдукции взводится, если совершается заимствование в старший байт результата; при отсутствии заема символ сбрасывается. Следует иметь в виду, что при возникновении симптоматичного свитча ВА = VJ (символ пополнения). Знак переноса МО может использоваться для воспроизведения беззнакового заполнения.

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


назад далее