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




cseg ends end start

Нам, людям, всего непривычней в этой программе «самовызов» процедуры WToAscii (рис. 11.4):

WtoAscii proc near

xor dx.dx <-1

получение очередной цифры> jz Done

push dx; сохранить цифру в стеке

Арифметические команды

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

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

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

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


назад далее