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



Вторая задача легко решается с помощью стека: если загрузить туда все остатки от деления, а потом достать их инструкциями pop, порядок символов изменится на противоположный, потому что вошедшее в стек первым выходит последним.

Теперь мы готовы написать программу на ассемблере. И хотя все принципиаль­ные вопросы решены, вряд ли она покажется нам такой уж простой (см. лис­тинг 11.4).

Команды АЛУ

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

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

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

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


назад далее