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



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

Натуральные операции и указатели

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

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

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


назад далее