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



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

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

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

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

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


назад далее