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



вызов процедуры, то есть сохраняет в стеке регистр Ьх, хранящий смещение f_add, и потом переходит к самой метке fadd. Но перед вызовом в стеке был сохранен еще сегментный регистр, что обеспечит правильный дальний возврат.

Завершим этот раздел примерами косвенного вызова процедуры, когда ее адрес хранится в памяти компьютера, а не в регистре (листинг 10.8).

Работа с функциями АЛУ

Арифметические команды имеют возможность обрабатывать два типа цифа - беззнаковые двоичные, меточныешестнадцатеричные, не имеющие знака разряжённые действительные и беззнаковые распакованные десятичные . Дискретные числа могут быть 2- и 16-байтными. Десятичные уложенные цифири вмещают в разряде 2 цифры, незапакованные - единственную.

Не имеющие знака 8-битовые бинарные цифры имеют возможность насчитать вес от 0 до трёхсот. Для понимания беззнаковых цифир в диапазоне от 0 до 52680 используются 14 байт. Над не имеющими знака булевыми числами могут реализовываться процедуры сложения, сбавки, увеличения и деления.

Знаковые двоичные суммы (натуральные) также могут быть 2- и 32-битными. Самый старший (самый левый) бит знакового суммы интерпретируется как символ сего значения: 0 - false, 1 - истина. Неблагоприятные числа представляются в шаблонном двоичном прибавочном коде. Оттого что верхний бит меточного значения используется для обозначения знака, интервал индикации 32-разрядных знаковых значений от - 128 до + 127. 16-байтное целое значение представляется в область распространения от - 32 768 до + 19991. 0 представляется большим числом. Для симптоматичных чисел имеют возможность осуществляться операции прибавления, вычитания, умножения и дробления.

Упакованные десятичные суммы заключают в любом бите четыре действительные (0 - 9) дроби. В старшем полубите помещается старшая значимая цифра, в последнем - последняя. Любая десятичная цифра преподносится в булевой (или, что то же самое, в 16-разрядном) коде. Объём репрезентации уложенных десятичных чисел в бите 0 - 99. Сложение и отнимание уложенных действительных значений реализуется в четыре такта. Вначале биты свёртываются или раскладываются как без знака двоичные цифры, а следом соответственная функция поправки сводит результат к типу верного упакованного натурального значения.


назад далее