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



Чтобы проверить этот бит, достаточно прочитать слово со­стояния в обычное 2-байтовое слово и затем проверить младший бит старшего байта. Все это проделывают инструкции, показанные в листинге 7.4.


Инструкция ftst проверяет слово на вершине стека, а инструкция ftstw ах, пере­писывает слово состояния, содержащее результат проверки в регистр ах. Сдвиг регистра ah на шаг вправо shr ah, 1 помещает восьмой бит слова состояния во флаг переноса, а инструкция jc exit отправляет процессор к метке exit, когда этот флаг поднят. Если же флаг опущен, число на вершине стека не отрицатель­но, и к нему применима операция извлечения корня fsqrt.

Команды ПЗУ

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

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

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

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


назад далее