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



Попробуем, например, сравнить два почти одинаковых «стога», которые отлича­ются тем, что в одном есть иголка, а во втором — нет. Первый стог хранится в сег­менте hayl, второй — в сегменте hay2 (листинг 10.4).

Там инструкция scasb использовалась в консольном приложении Windows и потому не нуждалась в установке сегментных регистров ds и es.

Арифметические команды

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

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

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

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


назад далее