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



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

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

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

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


назад далее