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



Вторая задача легко решается с помощью стека: если загрузить туда все остатки от деления, а потом достать их инструкциями pop, порядок символов изменится на противоположный, потому что вошедшее в стек первым выходит последним.

Теперь мы готовы написать программу на ассемблере. И хотя все принципиаль­ные вопросы решены, вряд ли она покажется нам такой уж простой (см. лис­тинг 11.4).

Работа с функциями АЛУ

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

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

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

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


назад далее