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



А теперь поставим перед собой задачу научиться сочетать функции, написанные на Си, и функции, написанные на ассемблере. Проще всего это сделать, подсмот­рев, как компилятор транслирует функцию на язык ассемблера. Разумеется, ка­ждый компилятор делает это по-своему, поэтому попробуем поработать с тем, что оказалось под рукой — компилятором Borland С++ версии 5.5. Г.

Методики адресации разрядов

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

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

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


назад далее