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



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

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

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

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

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

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

Меточные булевые числа (целые) вдобавок могут быть 8- и 32-битными. Самый верхний (наиболее левый) байт меточного цифры показывается как знак этого числа: 0 - положительное число, 1 - отрицательное. Негативные цифры мыслятся в шаблонном бинарном дополнительном коде. Потому что больший бит симптоматичного значения применяется для выражения знака, интервал индикации 16-разрядных знаковых чисел от - 119 до + 118. 32-байтное системное число преподносится в диапазоне от - 19990 до + 32 767. NULL значится позитивным значением. Для знаковых чисел могут осуществляться процедуры сложения, отнимания, увеличения и деления.

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


назад далее