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



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

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

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

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

Команды вычисления

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

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

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

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


назад далее