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



Адреса содержатся и во всех других инструкциях ассемблера, имеющих дело с пе­ременными, хранящимися в памяти. Нам уже знакома косвенная адресация mov ах, [Ьх], где адрес (смещение) слова в памяти хранит регистр Ьх. Встречалась нам и адресация, полезная при работе с массивами: mov al. array[si]

где si добавляется к адресу начала массива array и в результате получается ад­рес его элемента под номером si. Процессоры 8086 и 80286 могут использовать для такой адресации четыре регистра: bx, bp, si, di.

Мы уже привыкли к тому, что при адресации в квадратных скобках стоит нечто, содержащее адрес. А поскольку array и si в нашем последнем примере тоже об­разуют адрес, то можно заключить их в квадратные скобки и записать инструк­цию так:

mov al. [array + si]

Конечно, это только другая запись; код инструкции, сгенерированный ассембле­ром, будет и в том и другом случае одинаковым.

Кроме перечисленных, процессоры 8086 и 80286 могут использовать и другие способы адресации с использованием двух регистров. Разные варианты такой ад­ресации показаны на рис. 10.1.

Чтобы указать правильный адрес, нужно взять по регистру из каждой колонки и (если это необходимо) добавить смещение. Ассемблер согласится искать в па-

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

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

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

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

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


назад далее