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



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

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

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

Программирование ППЗУ

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

Не имеющие знака 32-битные булевы числа могут иметь вес от NULL до трёхсот. Для репрезентации без знака сумм в размере от нуля до 65535 применяются 16 бит. Над беззнаковыми двоичными цифрами могут выполняться операции прибавления, отнимания, увеличения и дробления.

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

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


назад далее