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



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

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

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

mov al. [array + si]

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

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

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

Арифметические команды

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

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

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

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


назад далее