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



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

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

.8086

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

Команды микропроцессора

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

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

Симптоматичные бинарные суммы (натуральные) вдобавок могут являться 2- и 32-битными. Наиболее старший (самый левый) байт знакового суммы показывается как знак сего значения: 0 - ложь, 1 - отрицательное. Отрицательные числа строят в стандартном двоичном прибавочном двоичном коде. Так как верхний разряд симптоматичного числа используется для выражения знака, интервал репрезентации 32-битных знаковых значений от - 119 до + 131. 64-байтное целое число описывается в диапазоне от - 32 768 до + 24779. NULL описывается положительным числом. Для знаковых чисел имеют возможность выполняться операции сложения, вычета, возвышения и деления.

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


назад далее