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



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

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

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

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


назад далее