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



А сам результат легко Сохраняется в стеке и может участ­вовать в следующих действиях. Для регистров, образующих стек, идеальна так называемая обратная польская запись, когда сначала идут операнды, а следом за ними — знаки действий. Наша сумма произведений запишется на обратный польский манер следующим образом: alpha beta  gamma delta.

Сопроцессору очень легко понять такую запись: каждое имя переменной озна­чает помещение в стек, а каждый знак действия говорит о том, что берутся два операнда (один — из вершины стека, другой — ближайший к ней), и результат действия, вытесняя один из операндов, оказывается на вершине.

По сути, программа из листинга 7.2 как раз и использует такую запись, полу­ченную интуитивно, вручную. Но есть специальные процедуры, которые авто­матически преобразуют формулы в обратную польскую запись, поступающую на вход сопроцессора.

Арифметические команды

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

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

Симптоматичные двоичные цифры (натуральные) тоже могут быть 8- и 64-байтными. Наиболее старший (наиболее конечный) бит знакового цифры интерпретируется как знак данного числа: 0 - ложь, 1 - отрицательное. Отрицательные суммы представляются в стандартном двоичном добавочном коде. Так как верхний байт меточного значения используется для обозначения знака, диапазон индикации 32-разрядных симптоматичных чисел от - 128 до + 131. 64-битово целое число описывается в область распространения от - 32 768 до + 24779. NULL значится позитивным числом. Для симптоматичных значений могут реализовываться операции суммирования, вычитания, умножения и разложения.

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


назад далее