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



делать нельзя: необходимо превратить ин­струкции в процедуру, которая возвращается, подобно бумерангу, точно в то место, откуда была запущена.

Мы уже хорошо знаем, что все это делается с помощью инструкций cal 1 и ret. Правда, в случае DOS приходится думать, какой вызов (далекий или близкий) нужен, процедуре и какой возврат. Программа, показанная в листинге 10.5, вы­зывает дальнюю процедуру, расположенную в «чужом» сегменте codel.

Логические команды

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

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

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

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


назад далее