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



mov ax.cs

add ax.500h

mov ss, ax

Столь же легко можно поменять и размер стека, если весь сегмент ему не ну­жен.

Листинг 11.6. Изменение размера стека

mov ax.cs

add ax.500h

cli запретить аппаратные прерывания

mov ss.ax

mov sp.200h

sti ;разрешить аппаратные прерывания

В листинге 11.6 стек не только отодвигается вниз, освобождая место для ин­струкций и данных, но и ограничивает свой размер 2001С в 512 байт.

Микропроцессорное программирование

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

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

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

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


назад далее