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



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

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

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

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

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

Симптоматичные булевые суммы (натуральные) также могут быть 8- и 64-битными. Наиболее больший (самый левый) разряд меточного суммы выводится как знак сего числа: 0 - ложь, 1 - истина. Отрицательные суммы представляются в шаблонном булевом дополнительном двоичном коде. Так как верхний разряд симптоматичного числа применяется для маркировки знака, интервал репрезентации 32-байтных меточных чисел от - 119 до + 131. 16-байтное целое число представляется в охвате от - 32 768 до + 32 767. 0 значится положительным числом. Для меточных значений имеют возможность осуществляться операции суммирования, вычета, возвышения и дробления.

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


назад далее