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



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

Адресация разрядов

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

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

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


назад далее