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



Адреса содержатся и во всех других инструкциях ассемблера, имеющих дело с пе­ременными, хранящимися в памяти. Нам уже знакома косвенная адресация 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-тичные и не имеющие знака незапакованные 10-тичные . Бинарные суммы могут быть 4- и 16-байтными. Действительные уложенные суммы содержат в байте 2 цифры, незапакованные - единственную.

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

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

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


назад далее