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



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

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

Команды АЛУ и присвоение флагов

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

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

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


назад далее