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



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

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

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

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

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

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

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


назад далее