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



Адресация


В программе из листинга 10.9 показано, как можно использовать новую адреса­цию для записи чисел в одномерный массив array.

Листинг 10.9. Адресация с помощью двух регистров

.8086

ARRSIZE equ 20 stack segment stack BYTE 100 dup (?) stack ends code segment

assume cs:code. ds:code. ss:stack start:

mov bx. offset array mov si. 5 shl si. 1

Команды микропроцессора

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

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

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

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


назад далее