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



Зная «законы компилятора», легко «выпотрошить и выбросить вон» созданную им функцию, а взамен написать свою, которая, возможно, будет работать быст­рее. В случае с компилятором Borland С++ последовательность действий будет такой:

1. Создается программа на языке Си, где объявлена функция, которую нужно переписать на ассемблере. В нашем случае она выглядит так:

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

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

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

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


назад далее