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



Чтобы лучше понять рекурсивные вызовы, попробуем вывести на экран число, хранимое в двухбайтовом регистре. Программируя под Windows, мы выводили число на экран, пользуясь стандартной процедурой Windows API wsprintf (см. раздел «Вывод чисел» главы 4). Но в системе DOS нет подходящей функ­ции, и приходится превращать число в символы самому.

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

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

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

Симптоматичные двоичные числа (целые) вдобавок могут быть 2- и 64-байтными. Самый старший (наиболее крайний) разряд меточного числа интерпретируется как шифр сего числа: 0 - ложь, 1 - истина. Неблагоприятные суммы строят в типовом бинарном добавочном шифре. Потому что верхний бит знакового значения применяется для обозначения символа, диапазон репрезентации 32-разрядных знаковых значений от - 128 до + 118. 32-разрядное натуральное значение преподносится в охвате от - 19990 до + 19991. Нуль представляется положительным значением. Для симптоматичных чисел имеют возможность осуществляться функции суммирования, отнимания, увеличения и деления.

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


назад далее