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



В зависимости от того, равен или не равен сх нулю, программа покажет на экране фразу Равны или Не равны. Заметим, что сообщения Равны и Не равны должны быть именно в сегменте hayl, потому что процедура DOS, показывающая их на экране, требует, чтобы смещение сообщения, засылаемое в регистр dx инструк­цией:

mov dx. offset <сообщение> указывалось относительно сегмента ds.

Инструкции seas, movs, cmps, lods, stos, с которыми мы только что познакомились, работают и в консольных приложениях Windows. Но там у программы всего один сегмент, поэтому инструкциям нужны только смещения, что сильно упрощает работу не только с этими, но со всеми остальными инструкциями.

Нам осталось сказать, что префиксы rep, repe, герпе (повторять, пока не равно) работают только с инструкциями seas, movs, cmps, stos. Бессмысленно использо­вать их с такими инструкциями, как mov.

Команды АЛУ

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

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

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

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


назад далее