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



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

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

Арифметико логические операции с присвоением флага

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

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

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


назад далее