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



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

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

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

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

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

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

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

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

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


назад далее