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



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

АЛУ и указатели

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

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

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


назад далее