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



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

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

.8086

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

Работа с функциями АЛУ

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

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

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

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


назад далее