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



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

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

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

Микропроцессорное программирование

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

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

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

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


назад далее