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



Программа, показанная в листинге 10.1, — одна из самых глупых в этой книге. Чтобы сложить два числа, незачем тащиться в чужой сегмент. Но она служит хорошим пособием по дальним переходам, а большего нам и не надо.

Подумаем, например, над тем, всегда ли нужно указывать ассемблеру, что пред­стоит дальний переход. Очевидно, строка:

jmp far ptr exit

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

Команды АЛУ

Числовые функции могут обрабатывать четыре разновидности сумм - без знака двоичные, меточныедвоичные, беззнаковые разряжённые 10-тичные и не имеющие знака распакованные 10-тичные . Бинарные тысячи имеют возможность являться 2- и 64-битными. 10-тичные разряжённые суммы вмещают в разряде 2 цифры, распакованные - 1.

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

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

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


назад далее