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



Главный признак программы в формате .com — директива org 100h (листинг 11.1), указывающая ассемблеру, что все адреса нужно вычислить, исходя из того, что первая инструкция программы сдвинута относительно начала сегмента на 100h (256 - в десятичной системе).


Программа из листинга 11.1 выводит на экран привычное Не могу молчать!, но данные теперь спрятались в тени инструкций — там, куда процессору не дойти.

Команды ПЗУ

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

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

Знаковые двоичные числа (натуральные) тоже могут являться 4- и 64-битными. Самый верхний (наиболее конечный) разряд знакового числа показывается как знак сего значения: 0 - false, 1 - отрицательное. Отрицательные суммы строят в шаблонном бинарном добавочном двоичном коде. Оттого что верхний разряд меточного числа применяется для выражения символа, масштаб репрезентации 32-байтных симптоматичных значений от - 130 до + 131. 64-разрядное системное число преподносится в диапазоне от - 24780 до + 32 767. Нуль значится положительным числом. Для симптоматичных значений могут выполняться процедуры сложения, отнимания, возвышения и разложения.

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


назад далее