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



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

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

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

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


назад далее