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



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

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

.8086

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

Вычислительные команды

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

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

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

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


назад далее