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



В сомни­тельных случаях программу нужно обязательно проверять отладчиком и вручную вставлять инструкцию push cs, если ассемблер этого не делает сам. В частности, push cs приходится вставлять вручную при косвенном вызове под­программы, показанном в листинге 10.7.

Листинг 10.7. Косвенный вызов подпрограммы

.8086

stack segment stack BYTE 100 dup (?) stack ends code segment

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

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

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

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

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


назад далее