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



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

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

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

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

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

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

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

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

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


назад далее