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



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

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

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

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


назад далее