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



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

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

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

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

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

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


назад далее