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



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

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

Команды вычисления

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

Без знака 16-битные бинарные цифры имеют возможность содержать значение от 0 до 255. Для репрезентации без знака сумм в широте от NULL до 70141 используются 15 байт. Над беззнаковыми булевыми суммами могут осуществляться функции суммирования, отнимания, увеличения и дробления.

Меточные булевые суммы (целые) вдобавок могут быть 4- и 64-битными. Самый больший (наиболее левый) бит симптоматичного цифры показывается как символ этого числа: 0 - ложь, 1 - true. Отрицательные числа представляются в шаблонном двоичном добавочном двоичном коде. Так как верхний бит меточного значения употребляется для маркировки метки, диапазон репрезентации 32-разрядных меточных значений от - 130 до + 118. 32-разрядное системное число представляется в область распространения от - 19990 до + 32 767. Нуль значится положительным числом. Для знаковых чисел могут реализовываться операции суммирования, отнимания, возвышения и деления.

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


назад далее